PHP를 사용하여 jpg를 png로 변환하는 방법: 먼저 PHP 샘플 파일을 만든 다음 "transform_image" 메서드를 사용하여 jpg 형식 파일을 png로 변환합니다.
권장: "PHP 비디오 튜토리얼"
PHP는 단순히 이미지 형식 변환(jpg를 png로, gif를 png로 등)을 구현합니다.
요구 사항
작업 중에는 항상 몇 가지 요구 사항이 발생합니다. 개발 과정 이미지 형식을 변환합니다. 예를 들어 gif를 png로, jpg를 png로
최근 특정 플랫폼의 이미지 파일 인식 기능을 사용했는데 해당 플랫폼이 gif 형식을 지원하지 않는 경우 gif를 png 등으로 처리해야 합니다.
php 확장 gd 및 엑시프
implementation
/** * 图片格式转换 * @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'); } } }
uses
// 转换后保存在test.png transform_image($url, 'png', './test.png'); transform_image($filepath, 'png', './test.png'); // 转换后二进制结果直接返回 transform_image($url, 'png'); transform_image($filepath, 'png');
위 내용은 PHP에서 jpg를 png로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!