【问题标题】:How does Apple.com achieve their progressive jpeg loading?Apple.com 如何实现渐进式 jpeg 加载?
【发布时间】:2015-05-01 13:30:23
【问题描述】:

如果你看看这样的网站

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

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

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

【问题讨论】:

  • 所有网站和浏览器都这样做?
  • “渐进式”正是这里的关键词,或者“隔行扫描”。这只是一种对 jpeg 进行编码的方式,因此接收到的数据越多,可用的细节就越多。
  • 好问题 - 哇,我一直希望在我的网站上出现这种效果。
  • 无用的事实:如果它们是 PNG,那就是 Adam7

标签: javascript html css jpeg


【解决方案1】:

这听起来像 Progressive Jpeg 格式,根据 Wikipedia:

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

这与 Javascript、HTML 或 CSS 无关,而更多是所用文件类型的产物。

【讨论】:

    【解决方案2】:

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

    交错(也称为交错)是一种对位图图像进行编码的方法,这样部分接收到它的人会看到整个图像的降级副本。当通过慢速通信链路进行通信时,这通常比看到图像一部分的完全清晰副本更可取,因为它有助于查看者更快地决定是中止还是继续传输。

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

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

    注意Progressive 复选框。

    【讨论】:

      【解决方案3】:

      渐进式 JPEG 和隔行扫描是用于优化图像的两种不同技术。 GIF 和 PNG 我们是交错的(虽然不同)。隔行扫描只是按照设定的模式记录像素编码。

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

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

      如果选择分阶段显示,则隔行和逐行的处理是不同的。对于隔行扫描,解码器需要将其拥有的像素扩展为尚未接收到的像素。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        相关资源
        最近更新 更多