Use DateCreated para DateTaken (CreationTime) en un PNG usando ExifTool

Tengo un montón de archivos PNG que mi esposa quiere conservar y que han sido capturados de nuestro monitor de bebé. Los archivos tienen el nombre de la fecha en que fueron capturados:

yyyymmdd_hhmmss.png

Desafortunadamente, no hay DateToken guardado en la imagen y me gustaría agregarlo para archivar y saciar el monstruo OCD que gruñe en mi pecho.

He revisado algunas publicaciones aquí usando la línea de comando ExifTool, pero ninguna de ellas parece detallar cómo configurar la propiedad "fecha tomada" (como se muestra en Windows Explorer y Lightroom, etc.) aunque, según tengo entendido, está definido en Exif como: Tiempo de creación??? (quizás).

He intentado muchas combinaciones de los siguientes sin éxito. (La fecha de toma permanece en blanco).

exiftool "-creationTime=-timecreated" *
exiftool "-creationTime<EXIF:DateCreated" *

Desesperado por ver si realmente está pasando algo:

exiftool "-creationTime=now" *
exiftool.exe "-DateTimeOriginal>FileModifyDate" *
exiftool -v "-FileModifyDate>AllDates" *

Pido disculpas; hay algo tan simple que me falta, pero después de buscar en los resultados de Google y numerosas publicaciones aquí, no estoy más cerca.

Editaré mi pregunta, pero es diferente ya que la mía se refiere a la etiqueta de tiempo de creación en un PNG.
Podría considerar convertir los archivos a un formato que admita metadatos adecuados, como TIFF.

Respuestas (2)

Siempre que tenga el nombre de archivo establecido como menciona, el comando que desea usar es
exiftool "-PNG:CreationTime<Filename" FileOrDir

Como menciona @cmason, PNG no es compatible con el estándar EXIF. Exiftool y Exiv2 tienen una solución alternativa, pero no es ampliamente compatible. Por lo tanto, otros programas no configurarán las etiquetas EXIF ​​a menos que las configure usted mismo con Exiftool o Exiv2.

La fecha de obtención es una propiedad de Windows, no una etiqueta de metadatos y, en el caso de los archivos PNG, se establece desde la PNG:CreationTimeetiqueta.

Para establecer la propiedad de toma de fecha de Windows en un archivo PNG a otra cosa, puede usar este comando, reemplazando la marca de tiempo de manera adecuada:
exiftool -PNG:CreationTime="2017:01:10 10:45:01" FileOrDir

Editar: solo algunas notas sobre por qué sus comandos anteriores no funcionaron.
exiftool "-creationTime=-timecreated" *El signo igual asigna valores. Entonces, en este caso, le asignas a la CreationTimeetiqueta el valor de -timecreated. Si quisiera copiar la TimeCreatedetiqueta, primero habría tenido que soltar el guión delante de -timecreated(solo se usa al principio para indicar una operación de etiqueta) y luego usar la operación de copia de etiqueta (menor/mayor que el símbolo <o >), por ejemplo, -creationTime<timecreatedo -TimeCreated>CreationTime.

exiftool "-creationTime<EXIF:DateCreated" *y exiftool.exe "-DateTimeOriginal>FileModifyDate" *correctamente formateado, pero como se mencionó, PNG no admite etiquetas EXIF ​​(DateTimeCreated es normalmente una etiqueta EXIF, aunque también puede ser una etiqueta XMP). Debería haber un mensaje de error "No se pueden escribir etiquetas".

exiftool "-creationTime=now" *"Ahora" es una pseudoetiqueta Exiftool para la fecha/hora actual. Pero el signo igual se establece CreationTimeen el valor now, no en el DateTime de ahora. El comando adecuado habría sido "-CreationTime<Now".

exiftool -v "-FileModifyDate>AllDates" *Correctamente formateado, pero nuevamente es un problema con la falta de soporte de PNG para datos EXIF. AllDateses un atajo de Exiftool para tres etiquetas EXIF: EXIF:DateTimeOriginal, EXIF:ModifyDate y EXIF:CreateDate.

Edición 2: en algún momento parece haber un cambio en la forma en que Windows lee los metadatos PNG. Parece que deja de leer en el fragmento PNG IDAT incluso si hay datos más allá, lo que está permitido por la especificación. PNG:CreationTimepuede que no se muestre correctamente cuando está escrito por exiftool. Vea esta publicación del foro Exiftool .

Edición 3: En exiftool ver 10.71, Phil Harvey cambió la forma en que exiftool escribió la PNG:CreationTimeetiqueta para seguir el formato PNG RFC-1123 ( Enlace Enlace ). Windows no parece ser capaz de leer ese formato. Este cambio se revirtió a partir de la versión 11.13 con una opción para aplicar la especificación PNG con la -api StrictDateopción.

PNG no admite EXIF ​​en su formato de archivo. Hay formas de agregar ciertos datos, conocidos como "fragmentos", pero no veo "fecha de toma" específicamente en el archivo estándar .

Mi recomendación es convertir todo a JPG, luego usar la herramienta EXIF ​​o Lightroom para agregar la información de la fecha de toma. Si usa una Mac, lo más probable es que haya un script de Apple disponible.

Gracias por la respuesta. Puedo configurar la propiedad fecha tomada individualmente en la sección de detalles del cuadro de diálogo de propiedades en Windows. Hice una comparación antes de configurarlo y después de configurarlo y mirar los metadatos en el png, ¿es el valor de tiempo de creación que se establece en el PNG? ¿No es posible establecer ese valor? Simplemente no sé cómo hacer referencia a ese valor para configurarlo. Gracias de nuevo. De lo contrario, convertiré a JPG.
El Grupo de Desarrollo de PNG está debatiendo en este momento el formato de un fragmento PNG EXIF ​​propuesto. Tenga en cuenta que PNG ya define una palabra clave "Tiempo de creación" para almacenar la fecha de creación en un fragmento de texto PNG. ImageMagick/GraphicsMagick ya admiten la conservación del perfil EXIF ​​completo (u otros perfiles como IPTC) en un fragmento PNG zTXt y su recuperación; es decir, el perfil EXIF ​​sobrevivirá a un viaje de ida y vuelta de JPEG a PNG y viceversa.