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 相关文章推荐
从C/C++迁移到PHP——判断字符类型的函数
Oct 09 PHP
php分页示例代码
Mar 19 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
php如何利用pecl安装mongodb扩展详解
Jan 09 PHP
laravel 事件/监听器实例代码
Apr 12 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
Sep 25 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
PHP个人网站架设连环讲(四)
2006/10/09 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
jquery实现的图片点击滚动效果
2014/04/29 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python标准库与第三方库详解
2014/07/22 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
Python实现数值积分方式
2019/11/20 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
汽车检测与维修专业求职信
2013/10/30 职场文书
施工资料员岗位职责
2014/01/06 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
解除劳动合同协议书
2014/04/14 职场文书
新农村建设标语
2014/06/24 职场文书
社保委托书怎么写
2014/08/02 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2014年商场工作总结
2014/11/22 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
Python PIL按比例裁剪图片
2022/05/11 Python