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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
php 多文件上传的实现实例
Oct 23 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
php实现的中文分词类完整实例
Feb 06 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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
浅析is_writable的php实现
2013/06/18 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
微信JSSDK上传图片
2015/08/23 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
2017/02/08 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
Paypal支付不完全指北
2020/06/04 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
Python爬虫之xlml解析库(全面了解)
2017/08/08 Python
简单了解什么是神经网络
2017/12/23 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Pandas中resample方法详解
2019/07/02 Python
python yield关键词案例测试
2019/10/15 Python
在Python中画图(基于Jupyter notebook的魔法函数)
2019/10/28 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
热爱祖国演讲稿
2014/05/04 职场文书
购房协议书范本
2014/10/02 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
单身证明范本
2015/06/15 职场文书
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript