Hallo, ich bin mir sicher, dass viele ähnliche Fragen gestellt wurden, aber nachdem ich viel gesucht habe, habe ich keinen Beitrag gefunden, der meine Situation beschreibt.
Ich habe einige JPG-Dateien, deren Farben nach einem bestimmten Punkt falsch sind, und außerdem wird jedes Pixel nach links verschoben. Ich denke, das liegt an einigen fehlenden Bytes an dem Punkt, an dem es sich ändert. Ich habe versucht, die Datei mit vi zu bearbeiten, aber es scheint unmöglich herauszufinden, wo sich die fehlenden Bytes befinden. Außerdem ist die Verwendung von vi sehr kompliziert. Ich habe auch Nano ausprobiert, aber es ist nicht binärsicher.
Dies ist eines der fraglichen Bilder:
Deshalb möchte ich Ihnen zwei Fragen stellen:
- Wie kann ich solche Images unter Linux reparieren?
- Wie kann ich die Datei in einem binären Texteditor unter Linux sicher öffnen und bearbeiten?
Bearbeiten: Mit hexedit habe ich festgestellt, dass es von Position 0x27F000 bis 0x27F403 nur Einsen 0xff und von 0x27F404 bis 0x27FFFF nur Nullen 0x00 gibt. Das macht so etwas:
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.....
Ändern dieser Bytes durch Zufallszahlen Ich konnte das Bild verschieben, aber es gibt immer noch das Farbproblem.
Könnte mich jemand auf eine Dokumentation zur JPEG-Codierung verweisen, damit ich herausfinden kann, wo ein 8x8-Block endet.
Ich frage mich, warum die Positionen so genau sind (0x27F000 bis 0x27FFFF). Könnte dies ein Fehler meiner Kamera oder der von mir verwendeten Speicherkarte sein?