こんにちは私は似たような質問がたくさんあると確信していますが、たくさん検索した後、自分の状況を説明する投稿は見つかりませんでした。
特定のポイントの後でいくつかの色が間違っているいくつかのjpgファイルがあり、すべてのピクセルが左にシフトしています。これは、変更された時点でバイトが欠落しているためだと思います。私はviでファイルを編集しようとしましたが、不足しているバイトがどこにあるのかを見つけるのは不可能のようです。また、viの使用は非常に複雑です。nanoも試しましたが、バイナリセーフではありません。
これは問題の画像の1つです。
だから私はあなたに2つの質問をしたいと思います:
- Linuxでこのようなイメージを修復するにはどうすればよいですか?
- Linuxでバイナリテキストエディターでファイルを安全に開いて編集するにはどうすればよいですか?
編集: hexeditを使用して、位置0x27F000から0x27F403までは0xffが1つだけあり、0x27F404から0x27FFFFまでは0x00だけがあることを発見しました。これは次のようになります:
0027EFF0 F8 83 C3 E2 09 35 AF 13 44 6E C5 FD C7 EF 23 E8 .....5..Dn....#.
0027F000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
[...]
0027F400 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 ................
[...]
0027FFF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00280000 8F 39 6E 47 4F 43 5F 36 7C 73 66 F1 0D AE AD AF .9nGOC_6|sf.....
これらのバイトを乱数で変更すると、画像のシフトを解除できましたが、まだ色の問題があります。
誰かがjpegエンコーディングに関するいくつかのドキュメントを私に指摘して、8x8ブロックがどこで終わるかを知る方法を理解できますか?
なぜ位置が非常に正確であるのか(0x27F000〜0x27FFFF)と思います。これは、使用しているカムまたはメモリカードのバグですか?