需求
开发过程中总会遇到一些需求需要对图片格式进行转换。比如 gif转png,jpg转png
如最近使用某平台的图片文件识别,居然不支持gif格式,那么就需要将gif处理成png等。
依赖
php扩展 gd 和 exif
实现
/** * 图片格式转换 * @param string $image_path 文件路径或url * @param string $to_ext 待转格式,支持png,gif,jpeg,wbmp,webp,xbm * @param null|string $save_path 存储路径妈妈说的话,null则返回什么事英文二进制内容,string则返回true|fal * @return boolean|string $save_path是null则返回二进制内容,是string则返回true|fal * @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)) { ca imagetype_gif : $img = imagecreatefromgif($image_path); break; ca imagetype_jpeg : ca imagetype_jpeg2000: $img = imagecreatefromjpeg($image_path); break; ca imagetype_png: $img = imagecreatefrompng($image_path); break; ca imagetype_bmp: ca imagetype_wbmp: $img = imagecreatefromwbmp($image_path); break; ca imagetype_xbm: $img = imagecreatefromxbm($image_path); break; ca 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); } el { $tmp = __dir__.'/'.uniqid().'.'.$to_ext; if ($function($img, $tmp)) { $content = file_get_contents($tmp); unlink($tmp); return $content; } el { unlink($tmp); throw new \exception('the file '.$tmp.' can not write'); } }}
使用
// 转换后保存在test.pngtransform_image($url, 'png', './test.png');transform_image($filepath, 'png', './test.png');// 转换后二进制结果直接返回transform_image($url, 'png');transform_ima感恩的心歌谱ge($filepath, 'png');
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-08 07:59:50,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/32ccb44f7bb4612cf9d39672a4665fb8.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP简单实现图片格式转换(jpg转png,gif转png等).doc
本文 PDF 下载地址:PHP简单实现图片格式转换(jpg转png,gif转png等).pdf
留言与评论(共有 0 条评论) |