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

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 图片。

时间: 2024-10-24 13:59:00

PHP把JPEG图片转换成Progressive JPEG的方法_php实例的相关文章

php实现图片转换成ASCII码的方法_php技巧

本文实例讲述了php实现图片转换成ASCII码的方法.分享给大家供大家参考.具体如下: php图片转换成ASCII码,转换后可以直接通过字符串显示图片 <html> <head> <title>Ascii</title> <style> body{ line-height:0; font-size:1px; } </style> </head> <body> <?php $image = 'image.j

PHP中把对象数组转换成普通数组的方法_php实例

最近在用ThinkPHP开发一个京东服务市场的应用,然而京东服务市场接口返回的数据是个对象数组.然而需要一个个属性取出来放到数组里面然后再利用ThinkPHP的addAll或者add方法写入数据库.然而每次返回的字段有几十个,每次这么拼接都要崩溃了.果然还是那句话,当你感到无法忍受的时候你就会想办法改变.于是想了下,如果有个函数传个对象数组进去可以自动转成普通数组就好了.因而万能的互联网搜索又来了.百度了一通...果然有前辈已经处理过了,在此记录一下. 复制代码 代码如下: /** * [std

win7系统下png图片转换成jpg格式的方法

  win7系统下png图片转换成jpg格式的方法            方法一:通过重命名的方法转换. 1.在电脑中找到要转换成jpg格式的png图片; 2.然后鼠标右键点击该png图片,在弹出的菜单中,点击"重命名"; 3.然后在重命名的图片输入框里,如下图点击选择png; 4.接下来如下图将png直接修改成jpg; 5.将png修改成jpg后,在修改输入框外边,点击下鼠标,这时png图片的格式即成功修改成jpg格式了.

php将图片文件转换成二进制输出的方法_php技巧

本文实例讲述了php将图片文件转换成二进制输出的方法.分享给大家供大家参考.具体实现方法如下: header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fopen('1.jpg', "r"), $PSize); echo $picturedata; 就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别. 这里需要注意的

php实现图片转换成ASCII码的方法

 具体如下: php图片转换成ASCII码,转换后可以直接通过字符串显示图片 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <html> <head> <title>Ascii</title> <style> body{ line-height:0; font-size:1px; } </s

php获取网页中图片、DIV内容的简单方法_php实例

1.获取网页中所有的图片: 复制代码 代码如下: <?php   //取得指定位址的內容,并储存至 $text  $text=file_get_contents('http://www.jb51.net/');      //取得所有img标签,并储存至二维数组 $match 中   preg_match_all('/<img[^>]*>/i', $text, $match);     //打印出match   print_r($match);   ?> 2.获取网页中的第一

php缩小png图片不损失透明色的解决方法_php实例

主要是利用gd库的两个方法: 复制代码 代码如下: imagecolorallocatealpha //分配颜色 + alpha imagesavealpha //设置在保存 png 图像时保存完整的 alpha 通道信息 代码示例: 复制代码 代码如下: //获取源图gd图像标识符$srcImg = imagecreatefrompng('./src.png');$srcWidth = imagesx($srcImg);$srcHeight = imagesy($srcImg); //创建新图

PHP把小数转成整数3种方法_php实例

float floor ( float value)    舍去法取整 返回不大于 value 的下一个整数,将 value 的小数部分舍去取整.floor() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大. 复制代码 代码如下: echo floor(4.3);   // 4 echo floor(9.999); // 9 float ceil ( float value)    进一法取整 返回不小于 value 的下一个整数,value 如果有小数部分

php将图片文件转换成二进制输出的方法

 本文实例讲述了php将图片文件转换成二进制输出的方法.分享给大家供大家参考.具体实现方法如下: 1 2 3 4 header( "Content-type: image/jpeg"); $PSize = filesize('1.jpg'); $picturedata = fread(fopen('1.jpg', "r"), $PSize); echo $picturedata; 就这么简单4行代码,就将图片以二进制流的形式输出到客户端了,和打开一张图片没有任何区别