現在該怎麼做
- 複製檔案,之後只在副本上操作。
- 檢查檔案,找出哪個區塊受損,或檔案是否被截斷。
- 建立修復副本;無法解碼的影像列會被略過或填補。
逐步操作
複製檔案
保留原始檔不變。如果這個 PNG 是復原取得的,也請檢查是否有另一個復原副本是完整的。
檢查檔案
在損毀檔案修復中選擇 PNG。FileFix Ultimate 會檢查 signature、標頭區塊、每個區塊的 CRC、壓縮影像資料和結尾標記。
閱讀檢查結果
輔助區塊的 CRC 錯誤,例如文字或色彩設定檔,通常無害且容易修正。影像資料區塊的損毀則會影響圖片本身。
建立修復副本
修復會更正結構問題;如果影像資料受損,則會用仍可解碼的影像列重建影像。
檢查結果
開啟修復副本。如果下半部遺失,表示那部分資料已經遺失,無法還原。
PNG 損毀的運作方式
PNG 以八位元組 signature 開頭,後面接著多個區塊:IHDR 描述尺寸與色彩類型,IDAT 區塊承載壓縮後的像素,IEND 標示結尾。每個區塊都以 CRC 檢查碼結束,因此任何位元組被改動都會被偵測到。
因為像素資料會跨所有 IDAT 區塊壓縮成同一個資料流,中間發生損毀時,通常會讓後面的所有內容都無法解開。損毀點之前的影像列可以正確解碼,這就是為什麼常能保留部分影像。忽略這些檢查碼的工具仍可能顯示局部破損的影像,因此不同檢視器可能會對同一個檔案有不同結果。
常見原因
下載和複製中斷會讓檔案被截斷。文字模式傳輸是部分 FTP 用戶端的舊問題,會改變換行位元組並破壞檢查碼。故障中的磁碟和標示容量不實的 USB 隨身碟,會直接在原處損毀資料。
刪除後復原的螢幕擷取畫面和圖形,如果部分空間已被重複使用,也可能已經損壞。復原後進行驗證,可以看出哪些檔案能完整解碼。
無法修復的情況
- 遺失或損毀的像素資料無法復原;只能保留可解碼的部分。
- 第一個影格以外的 Animated PNG 影格可能無法保留。
- 如果檔案只是副檔名為 .png,但內容其實是其他東西,就不是可修復的 PNG。
FileFix Ultimate 如何協助
- 檢查每個區塊及其 CRC,並回報損毀的確切位置。
- 資料流中斷時,從可解碼的影像列重建部分影像。
- 寫出新的 PNG,並保留原始檔不變。
- 解碼復原出的 PNG 檔案,以便在刪除復原後進行驗證。
FileFix Ultimate 免費、可離線使用,且絕不會寫入你正在復原來源的磁碟機。執行前請先檢查簽章。
常見問題
有 CRC 錯誤的 PNG 可以開啟嗎?
有些檢視器會忽略 CRC 錯誤,仍然顯示影像。具有正確檢查碼的修復副本,則可在這些檢視器中開啟。
為什麼我的 PNG 只看得到上半部?
壓縮資料在某個位置中斷,後面的所有內容都無法解碼。那部分資料已損毀或遺失。
PNG 修復是無損的嗎?
對於能解碼的影像列,是的。PNG 是無損格式,因此修復後的像素會與原始像素相同。
可以把損毀的 PNG 轉成 JPEG 來修好嗎?
轉換前必須先解碼影像,而解碼會在同一個位置失敗。請先修復 PNG 結構;如果需要 JPEG,再轉換修復副本。