Como remover metadados de arquivos de imagem

Como remover metadados de arquivos de imagem

[EDITAR # 1 por OP:Acontece que esta pergunta foi muito bem respondida pelo criador/mantenedor do exiftool Phil Harvey em umtópico duplicado no Fórum ExifTool]

[EDITAR # 2 por OP:DePerguntas frequentes sobre ExifTool:ExifTool énãogarantido a remoção completa dos metadados de um arquivo ao tentar excluir todos os metadados.Consulte 'Limitações do gravador'.]

Gostaria de pesquisar em meus discos rígidos antigos fotos que não estejam na minha unidade de backup atual. Os formatos incluem jpg, png, tif, etc..., bem como vários formatos raw (diferentes modelos de câmeras e fabricantes).

Estou interessado apenas na exclusividade da imagem em si e não na exclusividade devido a diferenças em, digamos, os valores das tags exif, a presença/ausência de uma determinada tag exif em si, miniaturas incorporadas, etc.

Mesmo que eu não espere encontrar qualquer corrupção/apodrecimento de dados entre diferentes cópias de imagens idênticas, gostaria de detectar isso, bem como diferenças devido ao redimensionamento e alterações de cores.

[Edição nº 3 por OP:Para esclarecimento: uma pequena porcentagem de falsos positivos é tolerável (conclui-se que um arquivo é único quando não o é) e falsos negativos são altamente indesejáveis ​​(conclui-se erroneamente que um arquivo é duplicado).]

Meu plano é identificar a exclusividade com base em md5sums após remover todo e qualquer metadado.

Como posso remover os metadados?

Será exiftool -all= <filename>suficiente?

Responder1

Comimagemagickpacote enão apenas para JPEGsvocê pode simplesmente:

mogrify -strip ./*.jpg

O ./objetivo é evitar problemas com nomes de arquivos que começam com "-".

Demanual:

-strip retire a imagem de quaisquer perfis, comentários ou estes pedaços PNG: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.

Muitomais informações e advertênciasaqui.

É semelhante ao @grochmal, mas muito mais direto e simples.

Responder2

jheadtem a capacidade de remover metadados que não sejam de imagem de arquivos JPEG. A página de manual diz:

-dc

Exclua o campo de comentário do cabeçalho JPEG. Observe que o comentário não faz parte do cabeçalho Exif.

-de

Exclua totalmente o cabeçalho Exif. Deixa outras seções de metadados intactas.

-di

Exclua a seção IPTC, se houver. Deixa outras seções de metadados intactas.

-dx

Exclua a seção XMP, se houver. Deixa outras seções de metadados intactas.

-du

Exclua seções de JPEG que não sejam Exif, não comentem e que não contribuam para a imagem - como dados que o Photoshop pode deixar na imagem.

-purejpg

Exclua todas as seções JPEG que não são necessárias para renderizar a imagem. Remove quaisquer metadados que vários aplicativos possam ter deixado na imagem. Uma combinação das opções -de -dce -du .

Responder3

Isso é um pouco antigo, mas sim, o exiftool funciona muito bem.

Mostrar metadados de

exiftool photo.jpg

Mostrar metadados para todos os arquivos *.jpg

Observação: a extensão émaiúsculas e minúsculas.

exiftool -ext jpg

O mesmo que acima, mas inclui subdiretórios.

exiftool -r -ext jpg .

Remover todos os metadados

exiftool -all= -overwrite_original photo.jpg

Remova todos os metadados de todos os arquivos *.jpg no diretório atual

exiftool -all= -overwrite_original -ext jpg 

O mesmo que acima, mas inclui subdiretórios.

exiftool -all= -r -overwrite_original -ext jpg .

Remova todos os metadados GPS de arquivos *.jpg no diretório atual

exiftool -gps:all= *.jpg

Responder4

Em vez de MD5, use o ImageMagick identifypara imprimir oassinaturade arquivos de imagens. Procure arquivos com a mesma assinatura. Os arquivos que compartilham uma assinatura têm o mesmo conteúdo.

Por exemplo, arquivos a.png, b.pnge c.pngsão diferentes, pois possuem somas de verificação MD5 diferentes:

$ md5sum *
a9ee60d8237a4b3f6cdd6e57c24b1caf  a.png
e8661c4fd7761984a74945e273fd4d09  b.png
21c808d62ff9c7675c1f9ca20d2f6578  c.png

No entanto, eles compartilham uma assinatura:

$ identify -format "%#  %f\n" *
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8  a.png
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8  b.png
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8  c.png

Portanto, eles são duplicados.

informação relacionada