【摘要】

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。下面是php如何实现图片格式转换,让我们一起来看看php如何实现图片格式转换的具体内容吧!

php如何实现图片格式转换

php实现图片格式转换的方法:首先转换后保存在【test.png】,代码为【transform_image($url, 'png', './test.png')】;然后转换后二进制结果直接返回。

php实现图片格式转换的方法:

开发过程中总会遇到一些需求需要对图片格式进行转换。比如 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

*/

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如何实现图片格式转换的内容,对PHP感兴趣的小伙伴们可以关注考必过,获取更多PHP前沿资讯和最新技术。最新消息小编会第一时间发布,助力大家考试,加油!

php怎么将网页变成图片格式,php如何实现图片格式转换相关推荐

  1. php把网络图片转化为base64格式,解决html2canvas图片跨域问题

    一.前言 最近在用html2canvas做网页截图功能.这个开源库使用很简单,代码也很方便,但难点在于跨域问题.比如说,我的一个页面中有图片也有文字,图片是来自于图片服务器的网络图片.此时我们要生成截 ...

  2. DPG图片压缩技术和webp图片格式

    DPG图片压缩技术和webp图片格式 一.DPG图片压缩技术 京东自主研发推出的DPG图片压缩技术,经测试该技术,可以直接节省用户近50%的浏览量,极大地提升了用户的网页打开的速度.能够兼容JPEG, ...

  3. JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析

    JPEG文件简介 JPEG的全称是JointPhotographicExpertsGroup(联合图像专家小组),它是一种常用的图像存储格式, jpg/jpeg是24位的图像文件格式,也是一种高效率的 ...

  4. 图片为什么要转化为base64格式

    今天有个同事问我了一个问题,为什么要把图片的url转化为base64格式.于是我就去网上查了一下,总结一下成果. 首先 图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代 ...

  5. 网页设计中如何成功地使用图片

    俗话说,一图胜千言.无论这是真是假,图片都是网页中重要的组成部分.自从嵌入图片步骤变得简单,我们可以看到很多网站都内嵌了许多图片,其中一些网站从不同角度展示了正确利用图片的好处,然而,大部分网站则不是 ...

  6. java将jfif格式转换成ipg_jfif是什么格式?Win10将图片JFIF格式转成JPG格式的方法

    Windows10系统在网页保存图片,发现保存的图片格式是.jfif,而不是常见的.jpg或.png格式..jfif是什么格式呢?这个格式没有见过,不少平台是不支持上传这个格式的图片,有什么办法解决? ...

  7. pyecharts:直接将图片保存为 png, pdf, gif 格式的文件

    pyecharts:直接将图片保存为 png, pdf, gif 格式的文件 第一步:安装phantomjs 1.下载phantomjs 2.添加路径 第二步:安装了 Nodejs 环境 第三步:安装 ...

  8. html 图片的格式有什么区别,图片的类型-图片的格式分为哪几种?都有什么区别? – 手机爱问...

    2018-05-19 jpg.tif等图片格式的区别是什么?都在那方面用呢? 1. PSD格式    PSD格式是Photoshop的固有格式,PSD格式可以比其他格式更快速地打开和保存图像,很好的保 ...

  9. base64格式的图片数据如何转成图片

    base64格式的图片数据如何转成图片 一.总结 一句话总结:不仅要去掉前面的格式串,还需要base64_decode()解码才行. 1 // $base_img是获取到前端传递的值 2 $base_ ...

  10. xsd文件转图片_图片转换成PDF格式怎么转?图片转换成PDF的软件哪个好?

    图片转换成PDF格式怎么转?经验丰富的设计师在完成图片格式的设计作品后都会将图片转成PDF格式文件,这样方便保存以及参加一些设计比赛.同时我们在保存大量图片的时候也可以将图片转换成PDF文件.但是还有 ...

最新文章

  1. C 语言 cgi 程序简单总结
  2. OpenStack-MitakaCentos7.2双节点搭建--(二)Keystone(认证服务)
  3. Shadow DOM及自定义标签
  4. TensorFlow 2.0 - tf.data.Dataset 数据预处理 猫狗分类
  5. mysql存儲過程_Mysql存儲過程 | 學步園
  6. hive 两个没有null指定的表左关联的结果有null_Hive企业级调优表的优化
  7. 下载安装tomcat和jdk,配置运行环境,与Intellij idea 2017关联
  8. android 判断主线程_腾讯Android面试:Handler中有Loop死循环,为什么没有阻塞主线程...
  9. 三菱FX Q FX5U PLC 程序加密,使用ST结构化文
  10. 盘古搜索--实例解析
  11. python有趣小程序春节祝福-Python自动回复微信好新年祝福
  12. 桌面误删文件恢复用什么软件?
  13. 能上QQ不能打开网页的情况之一
  14. 《路由器开发 - 路由器刷机指南》小米MINI刷机
  15. 老七苏-37:明日之星 苏-37是在苏-35的基础上改进而成的。
  16. 【Python】基于Python获取腾讯位置大数据并进行数据清洗与可视化
  17. PS CC2019安装
  18. 深度学习 01 探索深度学习
  19. MANIFEST.MF是个什么?
  20. onmouseover 事件

热门文章

  1. html解释json,json 解析
  2. Java 并发编程之 Atomic 类
  3. java统计数据并导出Excel
  4. html自动识别循环列表元素,动态添加的元素,怎么遍历它们的功能及内容
  5. android流量显示插件,[android]仿360状态,种流量监控桌面浮动显示
  6. idea jdbc封装_IDEA 中 MyBatis还可以这么玩!!!
  7. python数据预处理——数据分箱(将值归类)
  8. pandas使用dataframe读写mysql数据库
  9. 解决pytorch二分类任务交叉熵损失函数CrossEntropyLoss报错:IndexError: Target 1 is out of bounds.
  10. ajax和php没反应,PHP和AJAX没有更新发生