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 相关文章推荐
PHP5 安装方法
Oct 09 PHP
smarty模板嵌套之include与fetch性能测试
Dec 05 PHP
PHP中echo和print的区别
Aug 28 PHP
PHP Header失效的原因分析及解决方法
Nov 16 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 PHP
PHP RabbitMQ消息列队
May 11 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代码把全角数字转为半角数字
2007/12/10 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
微信小程序访问node.js接口服务器搭建教程
2017/04/25 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
如何通过python检查文件是否被占用
2020/12/18 Python
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
理财计划书
2014/08/14 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
人力资源部岗位职责
2015/02/11 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python