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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
通过文字传递创建的图形按钮
Oct 09 PHP
PHP开发框架总结收藏
Apr 24 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
PHP中file_exists与is_file,is_dir的区别介绍
Sep 12 PHP
php中用socket模拟http中post或者get提交数据的示例代码
Aug 08 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
Oct 15 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
php的扩展写法总结
May 14 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 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
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
php session_decode函数用法讲解
2019/05/26 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
JQuery动态创建DOM、表单元素的实现代码
2011/08/09 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
js定时器实例分享
2016/12/20 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
Python之父谈Python的未来形式
2016/07/01 Python
python flask 多对多表查询功能
2017/06/25 Python
python中的闭包函数
2018/02/09 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
社会实践心得体会范文
2016/01/14 职场文书
微信小程序和php的登录实现
2021/04/01 PHP
分析MySQL抛出异常的几种常见解决方式
2021/05/18 MySQL