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&amp;java(一)
Oct 09 PHP
php 在文件指定行插入数据的代码
May 08 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
php file_get_contents取文件中数组元素的方法
Apr 01 PHP
PHPExcel 修改已存在Excel的方法
May 03 PHP
Laravel5.7 数据库操作迁移的实现方法
Apr 12 PHP
解决laravel(5.5)访问public报错的问题
Oct 12 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
laravel 框架实现无限级分类的方法示例
Oct 31 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 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
PHP调用VC编写的COM组件实例
2014/03/29 PHP
PHP打印输出函数汇总
2016/08/28 PHP
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
javascript数组排序汇总
2015/07/07 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
jQuery四种选择器使用及示例
2016/06/05 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
JS前端加密算法示例
2016/12/22 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
Python Tkinter基础控件用法
2014/09/03 Python
python实现矩阵乘法的方法
2015/06/28 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python编写打字训练小程序
2019/09/26 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
专业销售业务员求职信
2013/11/18 职场文书
车队司机自我鉴定
2014/03/02 职场文书
信息学院毕业生自荐信范文
2014/03/04 职场文书
大学生演讲稿
2014/04/25 职场文书
实习单位鉴定评语
2014/04/26 职场文书
大班亲子运动会方案
2014/06/10 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
个人年终总结开头
2015/03/06 职场文书
通知函格式范文
2015/04/27 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
JavaScript函数柯里化
2021/11/07 Javascript
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL