【问题标题】:How many bytes are needed for a complete thumbnail of a progressive JPEG?渐进式 JPEG 的完整缩略图需要多少字节?
【发布时间】:2013-02-17 09:47:37
【问题描述】:

我正在尝试构建一个上传程序,它分两步上传渐进式文件:

  1. 上传最小字节数以创建缩略图 (0-10%)
  2. 上传缩略图的其余字节。 (11%-100%)

我想这样做以便更早地提供缩略图,而无需上传单独的缩略图。 拍摄一张使用jpegtran -copy all -progressive -outfile progressive.jpg original.jpg 创建的图像(3426398 字节),然后使用dd if=progressive.jpg of=thumb.jpg bs=1 count=350000 拍摄前 350000 个字节,我得到了一个可以工作的缩略图。

有没有办法找出我必须传输多少字节才能获得所有行都可用的图像?这样只会损失画质?

【问题讨论】:

    标签: jpeg libjpeg progressive


    【解决方案1】:

    渐进式 JPEG 图像由一系列“扫描”组成。每次扫描都会为每个 MCU 模块提供更多信息(更多 A/C 系数)。第一次扫描通常只是每个 MCU 的 DC 值。这恰好是获得 1/8 大小的缩略图的完美信息量。

    在 JPEG 文件中,每次扫描都以 FFDA 的 SOS(扫描开始)标记开始。为了知道完全保存第一次扫描需要多少数据,只需在文件数据中搜索第二次扫描的开始(第二个 FFDA 标记),您就会得到答案。由于标记字节规则,2 字节序列 FF DA 只能是 SOS 标记。需要编码 FF 后跟 DA 的压缩数据必须编码为 FF 00 DA。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多