Como converter arquivos JPEG JFIF para o formato JPEG Exif?

2

Eu recentemente coloquei o cartão SD da minha câmera em um PC com Windows 7 e comecei a navegar pelas imagens nele. Eu notei que alguns não estavam alinhados corretamente e usavam rotate feature incluído no Visualizador de Fotos do Windows para visualizá-los como eu queria.

O que eu não sabia é que quando o recurso de rotação é usado, ele também sobrescreve a imagem ao pressionar o botão seguinte ou anterior resultando em uma possível perda de qualidade (que é, na minha opinião, ruim idéia, o aplicativo deve pelo menos avisar o usuário sobre o que aconteceu ao usar esse recurso).

Depois disso, eu inseri o cartão SD novamente na minha câmera e uma surpresa ruim aconteceu: a imagem girada não podia mais ser visualizada. Em vez disso, eu tenho uma tela preta dizendo "Incompatible JPEG format". Outros arquivos (intocados) ainda estão funcionando ok.

Para tentar entender o que aconteceu, abri um arquivo JPEG da câmera e um gerado no windows 7 em um editor hexadecimal. Aqui está a diferença:

Os arquivos JPEG da câmera possuem uma tag Exif (com 0xE1 no cabeçalho). Outros arquivos JPEG (Windows 7) têm primeiro uma tag JFIF , seguida por uma tag Exif (com 0xE0 no cabeçalho).

Então, se eu entendi bem, ambos são arquivos JPEG, mas usando um formato interno diferente.

Aqui está a minha pergunta: é possível (usando alguma ferramenta) converter JFIF arquivos para Exif format?

Eu entendo que os arquivos originais da câmera foram redefinidos e, portanto, perdem alguma qualidade (é impossível recuperar os originais). O que eu quero saber se convertê-los de JFIF de volta para Exif (sem uma segunda perda de qualidade, se possível ...)

    
por tigrou 23.12.2012 / 13:41

2 respostas

2

O padrão JPEG possui várias variações de compliancy de arquivos que foram criadas por motivos específicos, dois tipos que são usados com frequência são EXIF e JFIF.

Embora ambos os arquivos sejam classificados como arquivos JPEG e apareçam em um computador com a extensão JPEG, a diferença deve-se aos dados suplementares que são adicionados à imagem original durante o processamento na câmera ou no computador. Esses dados geralmente são armazenados em áreas denominadas "APPn" (onde "n" é o número 0,1,2 etc).

A maioria dos aplicativos de software de imagem pode abrir os dois tipos de arquivo JPEG, mas a maioria das câmeras digitais só pode exibir imagens no formato EXIF. Quando um arquivo EXIF é aberto em um programa de imagem como o Photoshop e depois salvo, o arquivo é alterado para um formato JFIF com um resultado em que a imagem não pode mais ser aberta pela câmera e os dados de gravação são perdidos.

EXIF

O formato EXIF foi criado para uso em câmeras digitais, o APPn armazena informações como o estado da câmera quando a imagem foi gravada (obturador, balanço de branco de abertura, etc.).

JFIF

A variação JFIF é comumente usada no setor de imagens, e a maioria dos aplicativos de software salva arquivos nesse formato. O JFIF usa o APPn para armazenar informações como direitos autorais e legendas (texto IPTC) e informações de perfil para gerenciamento de cores (dados icm).

Você pode tentar ExifTool e executar este comando, mas é possível que sua câmera não conseguir exibir as imagens, pois os dados de disparo serão perdidos.

exiftool "-exif:all<jfif:all" "-thumbnailimage<jfif:thumbnailimage" FILE

    
por 23.12.2012 / 15:18
1

Na seção Compatibilidade do artigo da Wikipédia Formato de intercâmbio de arquivos JPEG :

The newer Exchangeable image file format (Exif) is comparable to JFIF, but the two standards are mutually incompatible. This is because both standards specify that their particular application segment (APP0 for JFIF, APP1 for Exif) must be the first in the image file. In practice, many programs and digital cameras produce files with both application segments included. This will not affect the image decoding for most decoders, but poorly designed JFIF or Exif parsers may not recognise the file properly.

Com base no acima, você pode converter um JFIF em um Exif simplesmente removendo o segmento / marcador APP0 com o editor hexadecimal e adicionando um segmento / marcador APP1 (por exemplo, usando outra ferramenta que manipula dados Exif). Ou você pode simplesmente adicionar os dados Exif e ainda conseguir abrir a imagem na maioria dos programas.

    
por 17.10.2014 / 15:51