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 相关文章推荐
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
PHP版自动生成文章摘要
Jul 23 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
详解php中反射的应用
Mar 15 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
PHP框架laravel的.env文件配置教程
Jun 07 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP封装的完整分页类示例
Aug 21 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
通过php修改xml文档内容的方法
2015/01/23 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
JS location几个方法小姐
2008/07/09 Javascript
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
详解python时间模块中的datetime模块
2016/01/13 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
Python基于template实现字符串替换
2020/11/27 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
开会迟到检讨书
2014/02/03 职场文书
幼儿园开学寄语
2014/04/03 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
公证处委托书
2015/01/28 职场文书
党支部培养考察意见
2015/06/02 职场文书
《雷雨》教学反思
2016/02/20 职场文书
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android