![如何修復損壞的 JPEG 文件](https://rvso.com/image/1465795/%E5%A6%82%E4%BD%95%E4%BF%AE%E5%BE%A9%E6%90%8D%E5%A3%9E%E7%9A%84%20JPEG%20%E6%96%87%E4%BB%B6.png)
我有 100 多個損壞的 JPEG 檔案。它們都是用同一台相機拍攝的。每個檔案大約 3MB,因此必須有大量資料可供使用。
它們來自我叔叔的相機,所以如果我能把它們修好,對他來說意義重大。
以下是我已採取的步驟。
1.JPegSnoop
這是建議的這裡。當我使用該軟體時,我收到以下錯誤訊息:
Start Offset: 0x00000000
*** Skipped 4878206 marker pad bytes ***
OFFSET: 0x004A6F7E
WARNING: Unknown marker [0xFF00], stopping decode
Use [Img Search Fwd/Rev] to locate other valid embedded JPEGs
我不太確定如何處理此錯誤訊息。
2.恆星鳳凰JPEG修復
此舉在網路上好評如潮。但是,它對我不起作用。
3. Online.officerecover.com
這是一項再次獲得好評如潮的線上服務。不幸的是,文件太大,無法上傳。
4.Jpeg維修店
這是另一個廣受好評的軟體,但對我來說不起作用。
答案1
我有 100 多個損壞的 JPEG 檔案。它們都是從同一台相機拍攝的。每個檔案大約 3MB,因此必須有大量資料可供使用。
這是一個經常做出的錯誤假設。據我們所知,該文件可能用零填充。因此,對於未來閱讀本文的任何人:
使用十六進位編輯器抽查一些文件,HxD 是免費的。驗證檔案未填入某些重複位元組模式(FF FF FF 等)的零。我經常收到需要修復的 JPEG 文件,我估計至少 50% 的情況下文件被填零。
如果這確實是您所看到的,則沒有任何方法可以修復文件。如果不是,該文件可能是可修復的。
是否以及如何取決於,我將解釋使用我使用和編寫的軟體 JPEG-Repair修復 JPEG。如果我知道可以嘗試某種修復的免費工具,我也會提及!我將避免連結到我自己的軟體。
基本上,JPEG 是一組部分,其中一些我們可以考慮元數據,而最大的部分是實際影像數據。每個部分都以 ' 開頭標記' 它告訴了該部分的用途及其大小。例外的是包含圖像資料的部分,它的大小未定義,應該對其進行解碼,直到我們到達圖像標記的末尾。
「標頭」損壞或損壞
儘管可能沒有正式的東西可以稱為標題,但我將除了包含實際圖像資料的部分之外的所有部分稱為標題。標頭損壞最可能的症狀是根本無法打開 JPEG。
現在假設我們無法開啟 JPEG,例如軟體告訴您「看起來我們不支援這種文件格式」。我們檢查並發現該文件確實包含數據,現在下一步可以做什麼?
快速估計檔案是否可以修復的一種方法是查看“熵”。 JPEG 是高熵數據,我們可以要求 JPEG-Repair 開啟檔案並計算熵。
如果熵看起來像 JPEG,JPEG-Repair 將以綠色顯示位元/位元組值,如果太高或太低,則該值將以紅色顯示。位元組直方圖分佈相當均勻,並且表示所有值。例如,以下直方圖顯示僅使用了一半可能的位元組值,並且根據定義不是 JPEG 檔案:
我們還可以使用提取模式等批量打開文件並評估多個文件。在這種情況下,熵太低,檔案無法包含 JPEG 資料:
如果熵看起來不錯,我們可以透過借用使用同一裝置拍攝的已知完整檔案的標頭來嘗試標頭修復。
損壞延伸到影像數據
這可能是勒索軟體造成的,但也可能由於許多其他原因而發生。一個例子是錯誤恢復的照片,如下面的影片所示。修復需要已知良好的參考文件。簡而言之,我們將標頭貼到損壞的檔案上,然後清除損壞的資料。由於 JPEG 的編碼方式,我們需要重新調整影像並修正顏色。
該影片展示了修復範例:https://youtu.be/sSDvNa7HOOA
影像資料損壞
請注意,您可以使用免費的JPEG維修店。
沒有真正的方法可以修復 JPEG 流中的損壞數據,但我們可以刪除損壞的數據並用虛擬數據(例如零)替換它。使用提供內容感知填充的照片編輯器通常可以輕鬆修復休息損壞。
這是一個修復範例:https://youtu.be/A33zn_sgm30