2013-02-17 58 views
4

我試圖建立其上傳分兩步進行性文件的上傳:漸進式JPEG的完整縮略圖需要多少個字節?

  1. 上傳字節的數量降到最低,以創建縮略圖(0-10%)
  2. 上傳字節的其餘部分的縮略圖。 (11%-100%)

我想這樣做可以在早些時候使用縮略圖,而無需上傳單獨的縮略圖。 以jpegtran -copy all -progressive -outfile progressive.jpg original.jpg創建一個圖像(3426398字節),然後將第一個350000字節與dd if=progressive.jpg of=thumb.jpg bs=1 count=350000取得,我得到了一個可用的縮略圖。

有沒有辦法找出我有多少字節,以獲得所有線路可用要傳輸的圖像?因此只會失去圖像質量?

回答

5

漸進式JPEG圖像由一系列「掃描」組成。每次掃描都會爲每個MCU模塊提供更多信息(更多A/C係數)。第一次掃描通常只是每個MCU的DC值。這恰好是獲得1/8尺寸縮略圖圖像的完美信息量。

在JPEG文件中,每次掃描都以FFDA的SOS(掃描開始)標記開始。爲了知道需要多少數據才能完成第一次掃描,只需搜索文件數據以開始第二次掃描(第二次FFDA標記),然後您就可以得到答案。由於標記字節規則,2字節序列FF DA不能是SOS標記。需要對FF後跟DA的值進行編碼的壓縮數據必須編碼爲FF 00 DA。