Apple.com如何实现渐进式jpeg加载?

时间:2015-03-01 00:42:44

标签: javascript html css jpeg

如果你看看像这样的网站

http://www.apple.com/watch/overview/

你会看到他们的.jpgs非常规加载,从像素化版本开始,逐渐增加分辨率,而不是从上到下加载。

在检查员中,图像看起来并不特别。这是一种索引文件本身的特定方式,以便浏览器按此特定顺序接收数据吗?

3 个答案:

答案 0 :(得分:6)

我也在其他网站上看到了这种效果。这取决于您将其保存为的图像类型。根据{{​​3}}:

隔行扫描(也称为交错)是一种对位图图像进行编码的方法,使得部分接收它的人看到整个图像的降级副本。当通过慢速通信链路进行通信时,通常最好看到图像的一部分的完全清晰的副本,因为它有助于观众更快地决定是中止还是继续传输。

这称为PNG和GIF类型图像的隔行扫描,以及JPEG图像的逐行扫描格式。

Photoshop中的Save for Web...部分有一个选项:

Save for Web - Progressive

请注意Progressive复选框。

答案 1 :(得分:5)

根据维基百科的说法,这听起来像 Progressive Jpeg 格式:

  

还有一种隔行扫描的“渐进式JPEG”格式,其中数据在逐步更高细节的多次传递中被压缩。这对于通过慢速连接下载时将显示的大图像是理想的,允许在仅接收一部分数据后进行合理的预览。但是,对渐进式JPEG的支持并不普遍。当不支持渐强式JPEG的程序(例如Windows 7之前的Internet Explorer版本)[13]接收到渐进式JPEG时,软件只有在完全下载后才会显示图像。

这与Javascript,HTML或CSS无关,但更多是使用的文件类型的产品。

答案 2 :(得分:0)

渐进式JPEG和隔行扫描是两种不同的细化图像的技术。 GIF和PNG我们隔行扫描(虽然不同)。隔行扫描仅仅是遵循设定模式的像素编码的记录。

渐进式JPEG将编码数据分成多个段。

下载图像流的应用程序可以在收到数据时分阶段显示数据,也可以等到全部下载完毕。

如果选择分阶段显示,则隔行扫描和渐进过程不同。对于隔行扫描,解码器需要将其所拥有的像素扩展到尚未接收的像素中。

对于渐进式JPEG,每次扫描都会添加到压缩数据中。对于每次显示迭代,解码器必须进行逆DCT和从YCbCr到RGB的转换。与隔行扫描不同,在每次显示迭代时都必须重复一些解码。