According to the specification, a PNG file should end at the IEND chunk,
however ExifTool will preserve any data found after this when writing unless
it is specifically deleted with -Trailer:All=. When reading, a minor
warning is issued if this trailer exists, and ExifTool will attempt to parse
this data as additional PNG chunks.
Also according to the PNG specification, there is no restriction on the
location of text-type chunks (tEXt, zTXt and iTXt). However, certain
utilities (including some Apple and Adobe utilities) won't read the XMP iTXt
chunk if it comes after the IDAT chunk, and at least one utility won't read
other text chunks here. For this reason, when writing, ExifTool 11.63 and
later create new text chunks (including XMP) before IDAT, and move existing
text chunks to before IDAT.
The PNG format contains CRC checksums that are validated when reading with
either the Verbose or Validate option. When writing, these checksums are
validated by default, but the FastScan option may be used to bypass this
check if speed is more of a concern.
--> EXIF Tags (this is where ExifTool will create new EXIF)
'fRAc'
FractalParameters
no
'gAMA'
Gamma
yes!
(ExifTool reports the gamma for decoding the image, which is consistent with
the EXIF convention, but is the inverse of the stored encoding gamma)
'gIFg'
GIFGraphicControlExtension
no
'gIFt'
GIFPlainTextExtension
no
'gIFx'
GIFApplicationExtension
no
'gdAT'
GainMapImage
no
'hIST'
PaletteHistogram
no
'iCCP'
ICC_Profile
-
--> ICC_Profile Tags (this is where ExifTool will write a new ICC_Profile. When creating a new
ICC_Profile, the SRGBRendering tag should be deleted if it exists)
'iCCP-name'
ProfileName
yes
(not a real tag ID, this tag represents the iCCP profile name, and may only
be written when the ICC_Profile is written)
The PNG TextualData format allows arbitrary tag names to be used. The tags
listed below are the only ones that can be written (unless new user-defined
tags are added via the configuration file), however ExifTool will extract
any other TextualData tags that are found. All TextualData tags (including
tags not listed below) are removed when deleting all PNG tags.
These tags may be stored as tEXt, zTXt or iTXt chunks in the PNG image. By
default ExifTool writes new string-value tags as as uncompressed tEXt, or
compressed zTXt if the Compress (-z) option is used and Compress::Zlib is
available. Alternate language tags and values containing special characters
(unless the Latin character set is used) are written as iTXt, and compressed
if the Compress option is used and Compress::Zlib is available. Raw profile
information is always created as compressed zTXt if Compress::Zlib is
available, or tEXt otherwise. Standard XMP is written as uncompressed iTXt.
User-defined tags may set an 'iTXt' flag in the tag definition to be written
only as iTXt.
Alternate languages are accessed by suffixing the tag name with a '-',
followed by an RFC 3066 language code (eg. "PNG:Comment-fr", or
"Title-en-US"). See http://www.ietf.org/rfc/rfc3066.txt for the RFC 3066
specification.
Some of the tags below are not registered as part of the PNG specification,
but are included here because they are generated by other software such as
ImageMagick.
Tag ID
Tag Name
Writable
Values / Notes
'Artist'
Artist
string
(unregistered)
'Author'
Author
string
'Collection'
Collection
string
'Comment'
Comment
string
'Copyright'
Copyright
string
'Creation Time'
CreationTime
string
(stored in RFC-1123 format and converted to/from EXIF format by ExifTool)
--> Photoshop Tags (unregistered. May be either IPTC IIM or Photoshop IRB format. This is
where ExifTool will add new IPTC, inside a Photoshop IRB container)
--> XMP Tags (unregistered, but this is the location according to the June 2002 or later
XMP specification, and is where ExifTool will add a new XMP chunk if the
image didn't already contain XMP)
These tags are found in the PNG pHYs chunk and belong to the PNG-pHYs family
1 group. They are all created together with default values if necessary
when any of these tags is written, and may only be deleted as a group.