Heim > Artikel > Backend-Entwicklung > So implementieren Sie die Bildformatkonvertierung in PHP
So implementieren Sie die Bildformatkonvertierung in PHP: Zuerst konvertieren und speichern in [test.png], der Code ist [transform_image($url, 'png', './test.png')]; dann ist das binäre Ergebnis direkt nach der Konvertierung zurückgegeben.
[Verwandte Lernempfehlungen: php-Programmierung (Video)]
So konvertieren Sie Bildformate in PHP:
Während des Entwicklungsprozesses werden Sie immer auf einige Anforderungen stoßen, die eine Konvertierung erfordern Bildformate. Zum Beispiel GIF zu PNG, JPG zu PNG
Wenn Sie kürzlich die Bilddateierkennung einer bestimmten Plattform verwendet haben, diese jedoch das GIF-Format nicht unterstützt, müssen Sie das GIF in PNG usw. verarbeiten.
Abhängig von der
php-Erweiterung gd und exif
Implementierung
/** * 图片格式转换 * @param string $image_path 文件路径或url * @param string $to_ext 待转格式,支持png,gif,jpeg,wbmp,webp,xbm * @param null|string $save_path 存储路径,null则返回二进制内容,string则返回true|false * @return boolean|string $save_path是null则返回二进制内容,是string则返回true|false * @throws Exception * @author klinson <klinson@163.com> */ function transform_image($image_path, $to_ext = 'png', $save_path = null) { if (! in_array($to_ext, ['png', 'gif', 'jpeg', 'wbmp', 'webp', 'xbm'])) { throw new \Exception('unsupport transform image to ' . $to_ext); } switch (exif_imagetype($image_path)) { case IMAGETYPE_GIF : $img = imagecreatefromgif($image_path); break; case IMAGETYPE_JPEG : case IMAGETYPE_JPEG2000: $img = imagecreatefromjpeg($image_path); break; case IMAGETYPE_PNG: $img = imagecreatefrompng($image_path); break; case IMAGETYPE_BMP: case IMAGETYPE_WBMP: $img = imagecreatefromwbmp($image_path); break; case IMAGETYPE_XBM: $img = imagecreatefromxbm($image_path); break; case IMAGETYPE_WEBP: //(从 PHP 7.1.0 开始支持) $img = imagecreatefromwebp($image_path); break; default : throw new \Exception('Invalid image type'); } $function = 'image'.$to_ext; if ($save_path) { return $function($img, $save_path); } else { $tmp = __DIR__.'/'.uniqid().'.'.$to_ext; if ($function($img, $tmp)) { $content = file_get_contents($tmp); unlink($tmp); return $content; } else { unlink($tmp); throw new \Exception('the file '.$tmp.' can not write'); } } }
use
// 转换后保存在test.png transform_image($url, 'png', './test.png'); transform_image($filepath, 'png', './test.png'); // 转换后二进制结果直接返回 transform_image($url, 'png'); transform_image($filepath, 'png');
[Verwandte Lernempfehlungen: php-Grafik-Tutorial]
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Bildformatkonvertierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!