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相关资料
Oct 09 PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
PHP 5.0对象模型深度探索之属性和方法
Mar 27 PHP
PHP 学习路线与时间表
Feb 21 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
Jul 04 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
phalcon框架使用指南
Feb 23 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 PHP
PHP微信H5支付开发实例
Jul 25 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
PHP解决高并发的优化方案实例
Dec 10 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
星际争霸任务指南——神族
2020/03/04 星际争霸
PHP安全配置详细说明
2011/09/26 PHP
php数组比较实现查找连续数的方法
2015/07/29 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
php格式化时间戳
2016/12/17 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
javascript基础知识讲解
2017/01/11 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
如何理解Python中的变量
2020/06/01 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
实习自我评价怎么写
2013/12/02 职场文书
建筑工程管理专业自荐信范文
2013/12/28 职场文书
2014年党员整改措施
2014/10/24 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
2015新学期开学寄语
2015/02/26 职场文书
单位同意报考证明
2015/06/17 职场文书
一条 SQL 语句执行过程
2022/03/17 MySQL
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js