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 获取目录下的图片并随机显示的代码
Dec 28 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
php Smarty 字符比较代码
Feb 27 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
php获取从百度搜索进入网站的关键词的详细代码
Jan 08 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
php集成环境xampp中apache无法启动问题解决方案
Nov 18 PHP
PHP页面输出搜索后跳转下一页的处理方法
Sep 30 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
php session_decode函数用法讲解
May 26 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/23 PHP
php5 mysql分页实例代码
2008/04/10 PHP
php简单的会话类代码
2011/08/08 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
php经典算法集锦
2015/11/14 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
用jquery来定位
2007/02/20 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
Python序列循环移位的3种方法推荐
2018/04/09 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
如何利用python读取micaps文件详解
2020/10/18 Python
英国领先的互联网葡萄酒礼品商:Vintage Wine & Port
2019/05/24 全球购物
车间工艺员岗位职责
2013/12/09 职场文书
优秀党员主要事迹
2014/01/19 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
八一建军节慰问信
2015/02/14 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL