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+DBM的同学录程序(4)
Oct 09 PHP
构建简单的Webmail系统
Oct 09 PHP
使用 php4 加速 web 传输
Oct 09 PHP
解析PHP中一些可能会被忽略的问题
Jun 21 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
PHP计算近1年的所有月份
Mar 13 PHP
php批量修改表结构实例
May 24 PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
Apr 10 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 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输出时间差函数代码
2013/01/28 PHP
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
PHP二维数组去重算法
2016/12/17 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
javascript 极速 隐藏/显示万行表格列只需 60毫秒
2009/03/28 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
js实现按座位号抽奖
2017/04/05 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
2019/08/29 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
Python 文件操作实现代码
2009/10/07 Python
Python实现把xml或xsl转换为html格式
2015/04/08 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
职工代表大会主持词
2014/04/01 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
廉洁自律证明
2015/06/24 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python