Salut, je suis sûr qu'il y avait beaucoup de questions similaires posées, mais après avoir beaucoup cherché, je n'ai trouvé aucun post décrivant ma situation.
J'ai des fichiers jpg qui ont des couleurs incorrectes après un certain point et aussi chaque pixel est décalé vers la gauche. Je pense que c'est à cause de quelques octets manquants au point où cela change. J'ai essayé d'éditer le fichier avec vi mais il semble impossible de savoir où se trouvent les octets manquants, vi est également très compliqué à utiliser. J'ai aussi essayé le nano mais ce n'est pas sûr pour les binaires.
C'est l'une des images en question:
Je veux donc vous poser deux questions:
- Comment réparer de telles images sous Linux?
- Comment puis-je ouvrir et modifier le fichier en toute sécurité dans un éditeur de texte binaire sous Linux?
Edit: en utilisant hexedit, j'ai découvert que de la position 0x27F000 à 0x27F403, il n'y en a que 0xff, et de 0x27F404 à 0x27FFFF, il n'y a que des zéros 0x00. Cela fait quelque chose comme ça:
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.....
En changeant ces octets avec des nombres aléatoires, j'ai pu décaler l'image, mais il y a toujours le problème de couleur.
Quelqu'un pourrait-il m'indiquer une documentation sur l'encodage JPEG afin que je puisse comprendre comment savoir où se termine un bloc 8x8.
Je me demande pourquoi les positions sont si précises (0x27F000 à 0x27FFFF), cela pourrait-il être un bug de ma caméra ou de la carte mémoire que j'ai utilisée?