PHP把JPEG图片转换成Progressive JPEG的方法


Posted in PHP onJune 30, 2014

JPEG文件格式有两种保存方式。他们是Baseline JPEG和Progressive JPEG.

两种格式有相同尺寸以及图像数据,他们的扩展名也是相同的,唯一的区别是二者显示的方式不同。

Baseline JPEG

这种类型的JPEG文件存储方式是按从上到下的扫描方式,把每一行顺序的保存在JPEG文件中。打开这个文件显示它的内容时,数据将按照存储时的顺序从上到下一行一行的被显示出来,直到所有的数据都被读完,就完成了整张图片的显示。如果文件较大或者网络下载速度较慢,那么就会看到图片被一行行加载的效果,这种格式的JPEG没有什么优点,因此,一般都推荐使用Progressive JPEG

Progressive JPEG

和Baseline一遍扫描不同,Progressive JPEG文件包含多次扫描,这些扫描顺寻的存储在JPEG文件中。打开文件过程中,会先显示整个图片的模糊轮廓,随着扫描次数的增加,图片变得越来越清晰。这种格式的主要优点是在网络较慢的情况下,可以看到图片的轮廓知道正在加载的图片大概是什么。在一些网站打开较大图片时,你就会注意到这种技术。

如果你的网速和蜗牛一样的话,你应该可以看到效果的,其实你在qzone、微博等大型网站你会经常看到这样的效果的。

PHP代码也可以将其进行转换成Progressive 的jpg。

<?php

 

$im = imagecreatefromjpeg('file.jpg');

// 设置隔行扫描 设定了隔行扫描比特标记而图像使用 JPEG 格式,则图像被创建为渐进式 JPEG。 php手册

imageinterlace($im, 1);

imagejpeg($im, './outfile.jpg', 80);

imagedestroy($im);

 

?>

我怎么看图片到底是Progressive 还是Baseline 格式呢?

我目前知道就是使用ImageMagick软件带的identity命令进行查看图像资源

identify -verbose outfile.jpg

如果你看到有一个属性为Interlace:JPEG则是Progressive 图片。

PHP 相关文章推荐
PHP使用数组实现队列
Feb 05 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
Jun 03 PHP
php类的扩展和继承用法实例
Jun 20 PHP
php用户注册信息验证正则表达式
Nov 12 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
Mar 17 PHP
简单实现php上传文件功能
Sep 21 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
laravel 框架执行流程与原理简单分析
Feb 01 PHP
YII2 全局异常处理深入讲解
Mar 24 PHP
php去除数组中为0的元素的实例分析
Nov 17 PHP
PHP把小数转成整数3种方法
Jun 30 #PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 #PHP
php防止伪造的数据从URL提交方法
Jun 27 #PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
Jun 27 #PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 #PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 #PHP
php使用GeoIP库实例
Jun 27 #PHP
You might like
Laravel5中contracts详解
2015/03/02 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
PHP图片加水印实现方法
2016/05/06 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
js命名空间写法示例
2015/12/18 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
利用three.js画一个3D立体的正方体示例代码
2017/11/19 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
Python进阶篇之字典操作总结
2016/11/16 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
厕所文明标语
2014/06/11 职场文书
小学生环保标语
2014/06/13 职场文书
小学运动会演讲稿
2014/08/25 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python
java项目构建Gradle的使用教程
2022/03/24 Java/Android