php中10个不同等级压缩优化图片操作示例


Posted in PHP onNovember 14, 2016

本文实例分析了php中10个不同等级压缩优化图片操作。分享给大家供大家参考,具体如下:

今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图片不会失真;随着压缩等级不断增大,图片会变得越来越不清晰,通常压缩后图片大小可以减少到原来的50%,压缩比还是挺大的。

如下是php压缩图片程序

<?php
Header("Content-type: image/PNG");/*告诉IE浏览器你做的程序是张图片*/
$image = @imagecreatefrompng ("banner.png"); 
imagepng ($image,null,0); /*压缩等级0-9,压缩后9最小,1最大*/
imagedestroy ($image);
?>

原图体积是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时,它的体积反而变大了?

我们在优化的时候,一般采用2等级比较合适,图片没有失真,但体积减少了30%,达到优化的目的了。如果采用6、7、8、9等级压缩的话,图片有所失真,所以不宜采用这些等级进行压缩优化图片。

我们看看老外是怎么解释这个现象的:

The result seems accurate since 0 means no compression

quality Compression level: from 0 (no compression) to 9.

It's normal for the 0ed file to be larger than the original (that can be slightly compressed to begin with). You need to understand file compression and PHP GD image constructor.

老外的解释有没有道理呢?他认为原始图片其实是经过了轻微的压缩,而0等级的压缩就是一点压缩都没有,所以它的体积会大于原始图片。我感觉此话不无道理。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
PHP 输出缓存详解
Jun 20 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
JpGraph php柱状图使用介绍
Aug 23 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
Feb 18 PHP
php关键字仅替换一次的实现函数
Oct 29 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
PHP封装的XML简单操作类完整实例
Nov 13 PHP
Laravel框架定时任务2种实现方式示例
Dec 08 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
PHP与Perl之间知识点区别整理
Mar 19 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 #PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 #PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 #PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 #PHP
PHP实现无限分类的实现方法
Nov 14 #PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 #PHP
PHP编写daemon process 实例详解
Nov 13 #PHP
You might like
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
JavaScript格式化数字的函数代码
2010/11/30 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jquery获取节点名称
2015/04/26 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Vue 中使用lodash对事件进行防抖和节流操作
2020/07/26 Javascript
python通过post提交数据的方法
2015/05/06 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
python批量爬取下载抖音视频
2019/06/17 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
深入了解Python 变量作用域
2020/07/24 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
遇到的Mysql的面试题
2014/06/29 面试题
班级安全教育实施方案
2014/02/23 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
mysql的单列多值存储实例详解
2022/04/05 MySQL
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python