Cómo eliminar metadatos de archivos de imagen

Cómo eliminar metadatos de archivos de imagen

[EDITAR #1 por OP:Resulta que esta pregunta está bastante bien respondida por el creador/mantenedor de exiftool, Phil Harvey, en unhilo duplicado en el foro de ExifTool]

[EDITAR #2 por OP:DePreguntas frecuentes sobre ExifTool:ExifTool esnoSe garantiza que eliminará los metadatos por completo de un archivo al intentar eliminar todos los metadatos.Consulte 'Limitaciones del escritor'.]

Me gustaría buscar en mis discos duros antiguos fotos que no estén en mi disco de respaldo actual. Los formatos incluyen jpg, png, tif, etc..., así como varios formatos raw (diferentes modelos de cámaras y fabricantes).

Solo me interesa la unicidad de la imagen en sí y no la unicidad debido a las diferencias en, por ejemplo, los valores de las etiquetas exif, la presencia/ausencia de una etiqueta exif determinada, las miniaturas incrustadas, etc.

Aunque no espero encontrar ninguna corrupción o deterioro de datos entre diferentes copias de imágenes idénticas, me gustaría detectar eso, así como diferencias debidas al cambio de tamaño y cambios de color.

[Edición #3 por OP:Para aclarar: un pequeño porcentaje de falsos positivos es tolerable (se concluye que un archivo es único cuando no lo es) y los falsos negativos son altamente indeseables (se concluye erróneamente que un archivo es un duplicado).]

Mi plan es identificar la unicidad basada en md5sums después de eliminar todos y cada uno de los metadatos.

¿Cómo puedo eliminar los metadatos?

¿Será exiftool -all= <filename>suficiente?

Respuesta1

Conimagemagickpaquete yno sólo para archivos JPEGpuedes simplemente:

mogrify -strip ./*.jpg

Esto ./es para evitar problemas con nombres de archivos que comienzan con "-".

Demanual:

-strip elimine la imagen de cualquier perfil, comentario o estos fragmentos PNG: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.

Muchomás información y advertenciasaquí.

Esto es similar a @grochmal, pero mucho más directo y sencillo.

Respuesta2

jheadtiene la capacidad de eliminar metadatos que no sean imágenes de archivos JPEG. La página de manual dice:

-dc

Elimine el campo de comentario del encabezado JPEG. Tenga en cuenta que el comentario no forma parte del encabezado Exif.

-de

Elimina el encabezado Exif por completo. Deja intactas otras secciones de metadatos.

-di

Elimine la sección IPTC, si está presente. Deja intactas otras secciones de metadatos.

-dx

Elimine la sección XMP, si está presente. Deja intactas otras secciones de metadatos.

-du

Elimine las secciones de jpeg que no sean Exif, que no comenten y que tampoco contribuyan a la imagen, como los datos que Photoshop podría dejar en la imagen.

-purejpg

Elimine todas las secciones JPEG que no sean necesarias para renderizar la imagen. Elimina los metadatos que varias aplicaciones puedan haber dejado en la imagen. Una combinación de las opciones -de -dcy -du .

Respuesta3

Esto es un poco antiguo, pero sí, exiftool funciona muy bien.

Mostrar metadatos de

exiftool photo.jpg

Mostrar metadatos para todos los archivos *.jpg

Nota: La extensión esdistingue mayúsculas y minúsculas.

exiftool -ext jpg

Igual que el anterior, pero incluye subdirectorios.

exiftool -r -ext jpg .

Eliminar todos los metadatos

exiftool -all= -overwrite_original photo.jpg

Eliminar todos los metadatos de todos los archivos *.jpg en el directorio actual

exiftool -all= -overwrite_original -ext jpg 

Igual que el anterior, pero incluye subdirectorios.

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

Elimine todos los metadatos GPS de los archivos *.jpg en el directorio actual

exiftool -gps:all= *.jpg

Respuesta4

En lugar de MD5, utilice ImageMagick identifypara imprimir elfirmade archivos de imágenes. Busque archivos que tengan la misma firma. Los archivos que comparten una firma tienen el mismo contenido.

Por ejemplo, los archivos a.png, b.pngy c.pngson diferentes, ya que tienen diferentes sumas de comprobación MD5:

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

Sin embargo, comparten una firma:

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

Por lo tanto son duplicados.

información relacionada