4
\$\begingroup\$

I have a load of PNG's that my wife wants to keep that have been captured from our Baby Monitor. The files are named for the date they were captured:

yyyymmdd_hhmmss.png

Unfortunately there is no DateTaken saved to the image and I would like to add it for filing purposes and to satiate the OCD monster growling in my chest.

I've reviewed a few posts on here using the ExifTool command line but none of them seem to detail how to set the "date taken" property (as shown in windows explorer and lightroom etc) although as I understand it its defined in the exif as: Creation Time??? (maybe).

I have tried many combinations of the following with no success. (Date Taken stays blank).

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

In desperation to see if anything is actually happening:

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

I apologise; there is something so simple I am missing but after trawling through google results and numerous posts on here I am no closer.

\$\endgroup\$
3

2 Answers 2

9
\$\begingroup\$

As long as you have the filename set as you mention, the command you want to use is
exiftool "-PNG:CreationTime<Filename" FileOrDir

Date Taken is a Windows property, not a metadata tag, and in the case of PNG files, it is set from the PNG:CreationTime tag. This is the only embedded metadata tag that Windows will read in a PNG file.

To set the Windows Date Take property in a PNG file to something else, you can use this command, replacing the time stamp appropriately:
exiftool -PNG:CreationTime="2017:01:10 10:45:01" FileOrDir

Edit: Just some notes on why your previous commands didn't work.
exiftool "-creationTime=-timecreated" * The equal sign assigns values. So in this case, you're assign the CreationTime tag the value of "-timecreated". If you wanted to copy the TimeCreated tag, you would have first had to drop the dash in front of -timecreated (only used at the very beginning to indicate a tag operation) and then used the tag copy operation (less/greater than symbol < or >) e.g. "-creationTime<timecreated" or "-TimeCreated>CreationTime". See Exiftool Common Mistake #5

exiftool "-creationTime<EXIF:DateCreated" * and exiftool.exe "-DateTimeOriginal>FileModifyDate" * At the original time posted, EXIF data in PNG files was non-standard, with ImageMagick, Exiv2, and exiftool using a work around to embed the data. An official location for EXIF data was added to the standard in 2017. These commands are properly formatted, but EXIF data in PNG files is rare unless specifically set by the user. There should have been a "No writable tags" error message. Note that while the second command works, most exiftool example show copying from the tag on the right into the tag on the left. The tag copy will follow the direction of the Less/Greater Than sign.

exiftool "-creationTime=now" * "Now" is an Exiftool pseudo-tag for the current date/time. But the equal sign is setting CreationTime to the value "now", not the DateTime of now. The proper command would have been "-CreationTime<Now" .

exiftool -v "-FileModifyDate>AllDates" * Properly formatted, but again it's a problem with PNGs lack of support for EXIF data at the time of the original post. AllDates is an Exiftool shortcut for three EXIF tags: EXIF:DateTimeOriginal, EXIF:ModifyDate, and EXIF:CreateDate.

\$\endgroup\$
1
\$\begingroup\$

PNG does not support EXIF in its file format. There are ways to add certain data, knowns as 'chunks' but I don't see 'date taken' specifically in the standard.

My recommendation is to convert all to JPG, then use EXIF tool or Lightroom to add date taken info. If you use a Mac, there is most likely an Apple script available.

\$\endgroup\$
2
  • \$\begingroup\$ Thanks for the reply. I can set the date taken property individually in the details section of the properties dialog in Windows. I did a comparison before setting it and after setting it and looking at the meta data in the png its the creation time value that gets set on the PNG? Is it not possible to set that value? I just don't know how to reference that value to set it. Thanks again. Failing that I shall convert to JPG. \$\endgroup\$
    – Chris
    Jan 10, 2017 at 15:48
  • \$\begingroup\$ The PNG Development Group is at this moment debating the format of a proposed PNG EXIF chunk. Note that PNG already defines a "Creation time" keyword for storing the creation date in a PNG text chunk. ImageMagick/GraphicsMagick already support preserving the entire EXIF profile (or other profiles such as IPTC) in a PNG zTXt chunk and retrieving it; i.e., the EXIF profile will survive a round-trip from JPEG to PNG and back. \$\endgroup\$ Jan 11, 2017 at 14:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.