Olá, tenho certeza de que foram feitas muitas perguntas semelhantes, mas, depois de pesquisar muito, não encontrei nenhum post descrevendo minha situação.
Eu tenho alguns arquivos jpg que têm algumas cores erradas após um certo ponto e também todos os pixels são deslocados para a esquerda. Eu acho que isso é por causa de alguns bytes ausentes no ponto em que muda. Tentei editar o arquivo com o vi, mas parece impossível descobrir onde estão os bytes ausentes, também é muito complicado usar o vi. Eu também tentei nano, mas não é seguro para binários.
Esta é uma das imagens em questão:
Então, eu quero lhe fazer duas perguntas:
- Como posso reparar essas imagens no Linux?
- Como eu poderia abrir e editar com segurança o arquivo em um editor de texto binário no Linux?
Edit: using hexedit, descobri que da posição 0x27F000 a 0x27F403 existem apenas 0xff e de 0x27F404 a 0x27FFFF existem apenas zeros 0x00. Isso torna algo como isto:
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.....
Alterando esses bytes com números aleatórios, consegui desviar a imagem, mas ainda há o problema de cores.
Alguém poderia me indicar alguma documentação sobre a codificação jpeg para que eu possa descobrir como saber onde termina um bloco 8x8.
Eu estou querendo saber por que as posições são tão precisas (0x27F000 a 0x27FFFF), isso poderia ser um bug da minha câmera ou do cartão de memória que eu usei?