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中使用Oracle数据库(5)
Oct 09 PHP
php 全文搜索和替换的实现代码
Jul 29 PHP
php 三维饼图的实现代码
Sep 28 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
PHP下常用正则表达式整理
Oct 26 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
总结PHP删除字符串最后一个字符的三种方法
Aug 30 PHP
php获得刚插入数据的id 的几种方法总结
May 31 PHP
PHP mkdir创建文件夹实现方法解析
Nov 13 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
第六节--访问属性和方法
2006/11/16 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP多例模式介绍
2013/06/24 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
PHP的全局错误处理详解
2016/04/25 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
D3.js实现折线图的方法详解
2016/09/21 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
深入理解javascript中的 “this”
2017/01/17 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python中Yield的基本用法
2020/10/18 Python
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
悬崖上的金鱼姬观后感
2015/06/15 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
企业培训简报范文
2015/07/20 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
基于Python实现西西成语接龙小助手
2022/08/05 Golang