今すぐ行うこと
- ファイルをコピーし、コピーだけを対象に作業します。
- 検査して、どのチャンクが破損しているか、またはファイルが途中で切れているかを確認します。
- 修復コピーを作成します。デコードできない行は除外されるか、埋められます。
手順
ファイルをコピーする
元のファイルはそのまま残します。PNGが復元によって得られたものなら、別の復元コピーが無傷かどうかも確認します。
検査する
破損ファイルの修復でPNGを選択します。FileFix Ultimateはシグネチャ、ヘッダーチャンク、各チャンクのCRC、圧縮された画像データ、末尾マーカーを確認します。
検査結果を読む
テキストやカラープロファイルなどの補助チャンクでCRCが不正なだけなら、影響は小さく修正も容易です。画像データチャンクの破損は、画像そのものに影響します。
修復コピーを作成する
修復では構造上の問題を修正し、画像データが破損している場合は、まだデコードできる行から画像を再構築します。
結果を確認する
修復コピーを開きます。下部が欠けている場合、その部分のデータは失われており、復元できません。
PNGの破損の仕組み
PNGは8バイトのシグネチャで始まり、その後にチャンクが続きます。IHDRはサイズとカラータイプを記述し、IDATチャンクは圧縮されたピクセルを格納し、IENDは終端を示します。各チャンクの末尾にはCRCチェックサムがあるため、どれか1バイトでも変わると検出されます。
ピクセルデータはすべてのIDATチャンクにまたがる1つのストリームとして圧縮されているため、途中の破損は通常、その後のすべてを壊します。破損箇所より前の行は正しくデコードされるため、部分的な画像を保存できることがよくあります。これらのチェックサムを無視するツールでは、部分的に壊れた画像でも表示される場合があるため、同じファイルについてビューアーごとに結果が異なることがあります。
よくある原因
ダウンロードやコピーの中断により、ファイルが途中で切れます。一部のFTPクライアントで見られた古い問題として、テキストモードでの転送が行末バイトを変更し、チェックサムを壊すことがあります。故障しかけたドライブや容量偽装のUSBメモリは、保存済みデータをその場で破損させます。
削除後に復元されたスクリーンショットやグラフィックも、その領域の一部が再利用されていると壊れている場合があります。復元後に検証すると、どのファイルが最後までデコードできるかが分かります。
うまくいかない場合
- 欠落または破損したピクセルデータは復元できません。保持されるのはデコード可能な部分だけです。
- アニメーションPNGでは、最初のフレーム以降が保持されない場合があります。
- .png拡張子が付いているだけで中身が別の形式のファイルは、修復対象のPNGではありません。
FileFix Ultimateが役立つ点
- すべてのチャンクとそのCRCを確認し、破損の正確な位置を報告します。
- データストリームが壊れている場合、デコード可能な行から部分的な画像を再構築します。
- 新しいPNGを書き出し、元のファイルは変更しません。
- 削除ファイルの復元後に、復元されたPNGファイルをデコードして検証します。
FileFix Ultimate は無料で、オフラインで動作し、復元元のドライブには書き込みません。実行前に署名を確認してください。
よく寄せられる質問
CRCエラーのあるPNGは開けますか?
一部のビューアーはCRCエラーを無視し、そのまま画像を表示します。正しいチェックサムを持つ修復コピーなら、それらのビューアーで開けます。
PNGの上部だけが表示されるのはなぜですか?
圧縮データが途中で壊れ、その後のすべてをデコードできなかったためです。その部分のデータは破損しているか、欠落しています。
PNGの修復は可逆ですか?
デコードできる行については、はい。PNGは可逆形式なので、修復されたピクセルは元のピクセルと同一です。
破損したPNGをJPEGに変換すれば直せますか?
変換するには、まず画像をデコードする必要がありますが、同じ箇所で失敗します。先にPNGの構造を修復し、JPEGが必要な場合はその修復コピーを変換してください。