PHP压缩图片功能的介绍


Posted in PHP onMarch 21, 2019

php程序开发中经常涉及到生成缩略图,利用php生成缩略图这个过程本身没难度,但是你知道php能够优化调节生成的缩略图的质量吗?也就是说php能够控制生成缩略图的清晰度以及生成后的缩略图的体积。下面我们就来看看如何利用php优化我们压缩后的图片。

对于如何使用php生成缩略图这里就不介绍了,大家可以参考本站下面这篇文章:PHP自动生成缩略图函数的源码示例

首先我们来看看用php压缩图片的程序代码:

<?php
header('Content-type: image/png');
$image=@imagecreatefrompng('//3water.com/test.png');
imagepng($image,'test.png',0); //注意后面那个数字0,这里即压缩等级,参数范围:0-9*/
imagedestroy($image);
?>

以上 imagepng 函数的第三个参数即是本篇文章所要分析的,这个参数的意思是生成图片的质量等级。这里可以分10个等级(0-9),0等级时即无压缩,图片不会失真,图片最清晰,但图片的体积也最大,随着压缩等级数字不断增大,图片会变得越来越不清晰,但压缩后图片的体积可以减少到原来的50%,压缩比还是挺大的。

下面看一个具体的例子吧,现在一个原图体积是125k,下面是经过不同压缩等级后的测试结果:

imagepng($img,null,0); --> Size = 225K
imagepng($img,null,1); --> Size = 85.9K
imagepng($img,null,2); --> Size = 83.7K
imagepng($img,null,3); --> Size = 80.9K
imagepng($img,null,4); --> Size = 74.6K
imagepng($img,null,5); --> Size = 73.8K
imagepng($img,null,6); --> Size = 73K
imagepng($img,null,7); --> Size = 72.4K
imagepng($img,null,8); --> Size = 71K
imagepng($img,null,9); --> Size = 70.6K

注意以上当压缩等级为0的时候,体积比原图还大的原因是原始图片其实是经过了轻微的压缩,而0等级的压缩就是一点压缩都没有,所以它的体积会大于原始图片。

根据以上结论和实际测试结果,得出的结论是在优化图片的时候,一般采用2等级比较合适,图片没有失真,但体积减少了30%,达到优化的目的了。如果采用6、7、8、9等级压缩的话,图片有所失真,而体积减少却不明显。所以不宜采用这些等级进行压缩优化图片。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
php设计模式 Proxy (代理模式)
Jun 26 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
解析PHP高效率写法(详解原因)
Jun 20 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
php基于curl扩展制作跨平台的restfule 接口
May 11 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
PHP内核探索之变量
Dec 22 PHP
php中引用符号(&amp;)的使用详细介绍
Dec 06 PHP
PHP用户注册邮件激活账户的实现代码
May 31 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
php 命名空间(namespace)原理与用法实例小结
Nov 13 PHP
PHP应用跨时区功能的实现方法
Mar 21 #PHP
PHP时间函数使用详解
Mar 21 #PHP
PHP抽象类与接口的区别详解
Mar 21 #PHP
PHP CURL使用详解
Mar 21 #PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 #PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 #PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
Mar 21 #PHP
You might like
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
jquery中this的使用说明
2010/09/06 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
一个简单的JS时间控件示例代码(JS时分秒时间控件)
2013/11/22 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
防止jQuery ajax Load使用缓存的方法小结
2014/02/22 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
深入理解$.each和$(selector).each
2016/05/15 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
python实现问号表达式(?)的方法
2013/11/27 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
Python Socket使用实例
2017/12/18 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
自主招生自荐信指南
2014/02/04 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
罚站检讨书
2015/01/29 职场文书
运动会3000米加油稿
2015/07/21 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python