PNG Proposed eXIf chunk, draft 20170114a File: png-proposed-eXIf-chunk-20170114a.html Status of this Memo This document is an informal draft of the PNG development group. Comments on this document can be sent to the PNG specification maintainers at png-mng-misc@lists.sourceforge.net [1]. Distribution of this memo is unlimited. Initial proposals were in the png-mng-misc mailing list, January 2017. At present, the latest version of this document is available on the World Wide Web from ftp://ftp.simplesystems.org/pub/libpng/png-group/documents/ [2]. Notices Copyright © 2017 Glenn Randers-Pehrson Permission is granted to copy and distribute this document for any purpose and without charge, provided that the copyright notice and this notice are preserved, and that any substantive changes or deletions from the original are clearly marked. Abstract This document describes two variants of a special-purpose chunk type that has been proposed for use in various PNG (Portable Network Graphics) and related multi-image applications. It has not yet been approved for registration by the PNG developers, and therefore is experimental and its format is subject to change. The proposed chunk is (with an unregistered name or names that can be used in test implementations shown in parentheses): eXIf (exIf, uxIf, zxIf). PNG uxIf (raw EXIF) proposal It is proposed to add the following section to the document "Extensions to the PNG 1.2 Specification, Version 1.4.0" 3.7. eXIf EXIF profile The four-byte chunk type field contains the decimal values 101 88 73 102 (ASCII "e X I f") When present, the eXIf chunk contains contains EXIF metadata that is compatible with specifications issued by CIPA, "Exchangeable image file format for digital still cameras" [CIPA DC-008-2016] or its successors. See https://www.media.mit.edu/pia/Research/deepview/exif.html The eXIf chunk contains an EXIF profile in a raw format: Data: length bytes where "length" is determined by the chunk "length" field, containing a raw EXIF profile. At most one eXIF chunk shall occur in a PNG datastream. There are no ordering constraints upon the position of the eXIf beyond those imposed by the PNG specification, i.e., if present, the eXIf chunk may appear anywhere between the IHDR and IEND chunks except between IDAT chunks. Exif Security considerations It is proposed to add the following two clauses to Section 7 (Security Considerations) of the "Extensions to the PNG 1.2 Specification, Version 1.4.0" document: The eXIf chunk may contain data such as image resolution and dimensions that are redundant with existing PNG chunks. Applications must be prepared to handle such redundant and perhaps conflicting information. The eXIf chunk may contain a "thumbnail" or a "preview" of the image. If the image has been redacted or otherwise edited, authors may be surprised to learn that they have leaked private information by publishing an unredacted image. PNG zxIf proposal It is proposed to add the following section to the document "Extensions to the PNG 1.2 Specification, Version 1.4.0" 3.7. eXIf EXIF profile The four-byte chunk type field contains the decimal values 101 88 73 102 (ASCII "e X I f") When present, the eXIf chunk contains contains EXIF metadata that is compatible with specifications issued by CIPA, "Exchangeable image file format for digital still cameras" [CIPA DC-008-2016] or its successors. See https://www.media.mit.edu/pia/Research/deepview/exif.html The eXIf chunk contains an optional "mode" byte followed by an EXIF profile in a raw format or in a zlib-encoded compressed format: Mode: 1 byte 0: the remaining length-1 bytes of data make up a zlib-encoded EXIF profile written in accordance with chapter 5, "Deflate/Inflate Compression" of the PNG specification version 1.2 (which is Clause 10.1, "Compression method 0" of the ISO PNG specification). 69: (ASCII "E") the remaining length-1 bytes of data, combined with the byte "E", make up a raw uncompressed EXIF profile Other values of Mode are reserved for other compression methods which might be defined in a future version of this specification. Data: the remaining length-1 bytes where "length" is determined by the chunk "length" field At most one eXIF chunk shall occur in a PNG datastream. There are no ordering constraints upon the position of the eXIf beyond those imposed by the PNG specification, i.e., if present, the eXIf chunk may appear anywhere between the IHDR and IEND chunks except between IDAT chunks. Exif Security considerations (same as in the uxIf proposal) Contributors Contributors to discussion on the png-mng-misc list * John Bowler * Adam Costello * Cosmin Truta * Glenn Randers-Pehrson * Willem van Schaik Editor * Glenn Randers-Pehrson, glennrp@users.sourceforge.net End of PNG eXIf Chunk Proposal. Expires 14 August 2017. References 1. mailto:png-mng-misc@lists.sourceforge.net 2. ftp://ftp.simplesystems.org/pub/libpng/png-group/documents/