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实现Ftp用户的在线管理的代码
Mar 06 PHP
escape unescape的php下的实现方法
Apr 27 PHP
PHP COOKIE设置为浏览器进程
Jun 21 PHP
php下把数组保存为文件格式的实例应用
Feb 08 PHP
php中常用的预定义变量小结
May 09 PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
phpnow php探针环境检测代码
Nov 04 PHP
PHP中文编码小技巧
Dec 25 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
Yii框架中jquery表单验证插件用法示例
Oct 18 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 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
PHP递归调用的小技巧讲解
2013/02/19 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
Ruffy javascript 学习笔记
2009/11/30 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
2015/06/17 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
vue 组件使用中的一些细节点
2018/04/25 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python版的文曲星猜数字游戏代码
2013/09/02 Python
python实现dict版图遍历示例
2014/02/19 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
python实现网页自动签到功能
2019/01/21 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python实现验证码识别
2020/06/15 Python
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
linux面试题参考答案(4)
2013/01/28 面试题
英语通知范文
2015/04/22 职场文书
教师节表彰会主持词
2015/07/06 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
学校教学管理制度
2015/08/06 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
《孙子兵法》:欲成大事者,需读懂这些致胜策略
2019/08/23 职场文书
60句有关成长的名言
2019/09/04 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP