php jpg怎么转换成png图片
时间:2021-07-29
来源:互联网
标签:
今天PHP爱好者给大家带来php jpg转换成png图片的方法:首先安装php扩展gd和exif;然后通过“function transform_image($image_path, $to_ext = 'png'...){...}”方法进行转换即可。希望对大家有所帮助。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
PHP简单实现图片格式转换(jpg转png,gif转png等)
需求
开发过程中总会遇到一些需求需要对图片格式进行转换。比如 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|false
* @return boolean|string $save_path是null则返回二进制内容,是string则返回true|false
* @throws Exception
* @author klinson <[email protected]>
*/
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');
}
}
}
使用
// 转换后保存在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爱好者其它相关文章!
-
什么是AP隔离?AP隔离开关有什么用 时间:2025-12-17 -
AP隔离在哪里设置 AP隔离开启还是关闭好 时间:2025-12-17 -
USB Host接口有什么用?USB Host和USB Device接口的区别 时间:2025-12-16 -
HDMI怎么区分1.4和2.0?HDMI1.4和2.0的区别 时间:2025-12-16 -
com.android.phone已停止运行是什么意思?怎么解决? 时间:2025-12-16 -
4mp摄像头是多少像素?4mp和1080p有什么区别? 时间:2025-12-16
今日更新
-
游咔官网入口-2026最新游咔中文官网登录地址一键获取
阅读:18
-
虚拟货币泡沫破裂后市场恢复周期分析与预测
阅读:18
-
漫蛙2(Manwa2)漫画最新网页版极速入口-漫蛙2在线阅读一键直达
阅读:18
-
泡芙梗是什么梗揭秘网络热词背后的甜蜜暴击
阅读:18
-
战网国际服无法连接服务器?绝密解决网络问题的实用指南
阅读:18
-
稳定币为何是数字货币生态系统的核心支柱与关键角色
阅读:18
-
汗汗漫画极速入口-汗汗漫画流畅无卡顿
阅读:18
-
steam游戏如何下载-steam客户端下载与游戏安装完整教程
阅读:18
-
永恒之塔2下载地址在哪-永恒之塔2PC版最新下载安装教程
阅读:18
-
泡芙是什么梗指网络流行的一种甜蜜互动方式,常用于形容情侣或好友间的亲密行为,网友直呼太甜了。
阅读:18










