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 图片
来源: https://www.php1.cn/detail/php-cbadb29568.html