PHP压缩图片功能的介绍


Posted in PHP onMarch 21, 2019

php程序开发中经常涉及到生成缩略图,利用php生成缩略图这个过程本身没难度,但是你知道php能够优化调节生成的缩略图的质量吗?也就是说php能够控制生成缩略图的清晰度以及生成后的缩略图的体积。下面我们就来看看如何利用php优化我们压缩后的图片。

对于如何使用php生成缩略图这里就不介绍了,大家可以参考本站下面这篇文章:PHP自动生成缩略图函数的源码示例

首先我们来看看用php压缩图片的程序代码:

<?php
header('Content-type: image/png');
$image=@imagecreatefrompng('//3water.com/test.png');
imagepng($image,'test.png',0); //注意后面那个数字0,这里即压缩等级,参数范围:0-9*/
imagedestroy($image);
?>

以上 imagepng 函数的第三个参数即是本篇文章所要分析的,这个参数的意思是生成图片的质量等级。这里可以分10个等级(0-9),0等级时即无压缩,图片不会失真,图片最清晰,但图片的体积也最大,随着压缩等级数字不断增大,图片会变得越来越不清晰,但压缩后图片的体积可以减少到原来的50%,压缩比还是挺大的。

下面看一个具体的例子吧,现在一个原图体积是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的时候,体积比原图还大的原因是原始图片其实是经过了轻微的压缩,而0等级的压缩就是一点压缩都没有,所以它的体积会大于原始图片。

根据以上结论和实际测试结果,得出的结论是在优化图片的时候,一般采用2等级比较合适,图片没有失真,但体积减少了30%,达到优化的目的了。如果采用6、7、8、9等级压缩的话,图片有所失真,而体积减少却不明显。所以不宜采用这些等级进行压缩优化图片。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
PHP中Session的概念
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
PHP array_push 数组函数
Dec 26 PHP
IP138 IP地址查询小偷实现代码
Feb 15 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
php jsonp单引号转义
Nov 23 PHP
php创建多级目录的方法
Mar 24 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
php socket通信(tcp/udp)实例分析
Feb 14 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
Sep 01 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 PHP
PHP应用跨时区功能的实现方法
Mar 21 #PHP
PHP时间函数使用详解
Mar 21 #PHP
PHP抽象类与接口的区别详解
Mar 21 #PHP
PHP CURL使用详解
Mar 21 #PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 #PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 #PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
Mar 21 #PHP
You might like
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
php setcookie(name, value, expires, path, domain, secure) 参数详解
2013/06/28 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
js 表单验证方法(实用)
2009/04/28 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
2017/02/09 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
[02:56]DOTA2亚洲邀请赛 VG出场战队巡礼
2015/02/07 DOTA
Python爬取三国演义的实现方法
2016/09/12 Python
Python 序列的方法总结
2016/10/18 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
flask-restful使用总结
2018/12/04 Python
python-opencv颜色提取分割方法
2018/12/08 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
Python通过format函数格式化显示值
2020/10/17 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
如何提高JDBC的性能
2013/04/30 面试题
Python面试题集
2012/03/08 面试题
幼儿园中秋节活动反思
2014/02/16 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
安踏广告词改编版
2014/03/21 职场文书
连带责任保证书
2014/04/29 职场文书
学习nginx基础知识
2021/09/04 Servers