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 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
Nov 12 PHP
php 伪静态之IIS篇
Jun 02 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
Mar 19 PHP
PHP安装memcached扩展笔记
May 28 PHP
php 利用array_slice函数获取随机数组或前几条数据
Sep 30 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
php 无限分类 树形数据格式化代码
Oct 11 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 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+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
javascript之解决IE下不渲染的bug
2007/06/29 Javascript
JavaScript中的对象化编程
2008/01/16 Javascript
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
javascript随机抽取0-100之间不重复的10个数
2016/02/25 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
最实用的JS数组函数整理
2017/12/05 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
Python操作串口的方法
2015/06/17 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
python2 对excel表格操作完整示例
2020/02/23 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
linux面试题参考答案(9)
2016/01/29 面试题
what is the difference between ext2 and ext3
2013/11/03 面试题
少先队入队活动方案
2014/02/08 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
十佳好少年事迹材料
2014/08/21 职场文书
捐书活动倡议书
2015/04/27 职场文书
紧急迫降观后感
2015/06/15 职场文书
学术研讨会主持词
2015/07/04 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
详解TypeScript的基础类型
2022/02/18 Javascript