Re: PngSuite icon with eXIf chunk
Willem van Schaik <[email protected]> Wed, 19 Jul 2017 09:46:02 -0600
| Newsgroups | gmane.comp.graphics.png.general |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------040403030008010805090101 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit oops :) some version control apparently missing the old January version of exif2c08.png got included attached the correct one thanks Phil !! Willem $ hexdump -C exif2c08.png 00 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 10 00 00 00 20 00 00 00 20 08 02 00 00 00 fc 18 ed |... ... ........| 20 a3 00 00 03 d2 65 58 49 66 4d 4d 00 2a 00 00 00 |.....eXIfMM.*...| 30 08 00 07 01 12 00 03 00 00 00 01 00 01 00 00 01 |................| 40 1a 00 05 00 00 00 01 00 00 00 62 01 1b 00 05 00 |..........b.....| On 2017-07-17 14:43, Willem van Schaik wrote: > > last January I posted a recipe to create a PNG with an exIf chunk > > here is the updated version for eXIf and some other changes in the final > spec > [...] -- Willem van Schaik <[email protected]> http://www.schaik.com/ --------------040403030008010805090101 Content-Type: application/x-compressed-tar; name="exif2c08.tgz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="exif2c08.tgz" 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 AOpUxtmi/CpproUP5m1VpUjvzxmSd8DYlI4sMw3HVyxoLZKPExLjiJ5hw+lHMk5GO1H6auK9 PJ19pD4b58JMCSt8Xm8koQNPo7OTVAgc3Oousnyfs7ZufwQjfbD18i+Zw60ZQHYZS+F0W2oa 5f/au74Yu46zngrawkUib6hShDQscbxr765nzjkzZ47tXeS4duo0jq0kFQjbRPN376nvPffm 3nPtdWKnFbRUCF76mqrNA0UVECEkqj5EqvpQlaiPNIG8gFDpA6os1CIIlUKq8s135v5b26lD Ey8NZ7S799w55/vm+37z/Zvzb7/2qW+/+fItfNTL3/zuj7/74IufbjLN7u9/8z/+ERLEvz78 4onfvfr8Qy8d/Ou/efXKWw9AmPvWH3/tex+/+V/3f+hP/+kb//C9czff/Mr2p+vr3/7isdML 1osu8JnvH/tg/zvHf/jWW/bFF+u3Xnll8uN/0V/979dv/v0br73yzK996UdPX3zp5he+MLnx 2o1Dt0Hnzfs+8uevfXg4PP/6hde/dc7v3Hz2hZ3fOv7SzfLrf/D98hZv+snhG/f9yVMv7Pzg c8d++J9f/av7H/jnT37+S68P/u0XPgYSvvFL3/n3B27xsA/fuO/iX3z2sy8/P3ri9VdffuvM C597+sJf3nzuucnWG7/85R+tfHn7j/7swC3jfOrVX//VH9z/xQ/dEtw/8is/+cXPP/yHf2t/ ++8+EyqX9i6Od6Nh/W+6l/fx/A+Ftfzs/l/OYv3P2vr/3rTm9t79lqJt+9Ma/x+ZffV/Or// nyd4/79IW/9vW9ve84b+3y+rfXz+P8lofP6f8TTcC4rXf9rn/+9Ju/3z//fpPc//f/AOV4ce Xbg69MTsSsoHlq8OxfaBxd//a1dK2ueQ3z9XStrnkNvnkNvnkO+uYf4fVG4fr/+FNwDF63+c Ciba/H8P2108/9u293Fr/H+0s5/1f5LNr/8LnqP/i6T1/3vRfh7uYmpr87Y2b2vztjZv27vf Zvl//+p/lqVinv8T1uT/9vz/PWl3Uf+3bwhp3xDSviHkfdow/tfd4T6u/1iS5NP4nzCWYvzn 7fM/96T9PKz/2qdY3j/rv/fmKZa2/W9bE/+vDvaz/k9zPj//3zz/mUMaaOP/PWlted+W9215 //+1Qdg340l/07yHY2D8z+4U/xlns/qf51mC8T9pr//cm/abZWV6E+vI8XFty8Fmd7uz1NUr 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 --------------040403030008010805090101 Content-Type: text/plain; charset=UTF-8; name="README" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="README" - create in GIMP a simple JPEG image exif-org.jpg - shrink the image into a tiny thumbnail $ jpegtopnm exif-org.jpg | pnmscale -xysize 8 8 | pnmtojpeg -q 90 > exif-thp.jpg - use exiftool to add an APP1 block with EXIF data $ exiftool -exif:exifversion=0220 -exif:copyright="2017 Willem van Schaik" -exif:usercomment=PngSuite -exif:orientation=horizontal -exif:xresolution=72 -exif:yresolution=72 -exif:resolutionunit=inches "-thumbnailimage<=exif-thp.jpg" -o exif2c08.jpg exif-org.jpg - check the EXIF data with both 'exiftool exif2c08.jpg' and the exif tab in eog - $ hexdump -C exif2c08.jpg | more 00000000 ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 |......JFIF......| 00000010 00 01 00 00 ff e1 03 da 45 78 69 66 00 00 4d 4d |........Exif..MM| 00000020 00 2a 00 00 00 08 00 07 01 12 00 03 00 00 00 01 |.*..............| in this 0xffe1 is the APP1 marker, the length is 0x3da or 986, and Exif.. is the code, null and padding byte; the data starts with "MM" (or "II") - snip out the EXIF data (length is 986 - 8 = 978) $ dd skip=30 count=978 bs=1 if=exif2c08.jpg of=exif-app.dat - use dd to cut the PNG file into pieces $ dd skip=0 count=33 if=exif-org.png of=exif-one.png $ dd skip=33 count=765 if=exif-org.png of=exif-two.png - create some binary bits and pieces (chunkname eXIf) $ echo -n -e "\x00\x00\x03\xd2\x65\x58\x49\x66" > exif-chk.dat $ echo -n -e "\x00\x00\x00\x00" > exif-crc.dat - use cat to glue the whole thing together (with CRC zero) $ cat exif-one.png exif-chk.dat exif-app.dat exif-crc.dat exif-two.png > exif2c08.png - finally pngcsum (http://schaik.com/png/pngcsum.html) to fix the CRC - view with "eog exif2c08.png" and "hexdump -C exif2c08.png" Willem van Schaik Calgary, July 2017 On 2017-01-03 19:31, John Bowler wrote: > ================================================================ > PNG CHUNK PROPOSAL: eXIf > > SPECIFICATION > ============= > > The four-byte chunk type field contains the decimal values > > 101 88 73 102 > > The eXIf chunk contains EXIF metadata with a length given by the chunk > length. Such data shall be compatible with specifications issued by > CIPA, "Exchangeable image file format for digital still cameras" [CIPA > DC-008-2016] or its successors. > > At most one eXIf chunk shall occur in a PNG stream. The chunk has no > chunk-specific positioning requirements; it may appear before or after > the IDAT chunks. > ================================================================ --------------040403030008010805090101 Content-Type: image/png; name="exif2c08.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="exif2c08.png" iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAD0mVYSWZNTQAqAAAACAAHARIA AwAAAAEAAQAAARoABQAAAAEAAABiARsABQAAAAEAAABqASgAAwAAAAEAAgAAAhMAAwAAAAEA AQAAgpgAAgAAABcAAAByh2kABAAAAAEAAACKAAAA3AAAAEgAAAABAAAASAAAAAEyMDE3IFdp bGxlbSB2YW4gU2NoYWlrAAAABZAAAAcAAAAEMDIyMJEBAAcAAAAEAQIDAJKGAAcAAAAQAAAA zKAAAAcAAAAEMDEwMKABAAMAAAAB//8AAAAAAABBU0NJSQAAAFBuZ1N1aXRlAAYBAwADAAAA AQAGAAABGgAFAAAAAQAAASoBGwAFAAAAAQAAATIBKAADAAAAAQACAAACAQAEAAAAAQAAAToC AgAEAAAAAQAAApcAAAAAAAAASAAAAAEAAABIAAAAAf/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sA QwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUV FQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgACAAIAwEiAAIRAQMRAf/EAB8AAAEF AQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUS ITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH SElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqy s7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMB AQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUh MQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVG R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ip qrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQAC EQMRAD8A+7EGoxTRqz3ySM6AuwITn7+fbkf04ooor+Y6k27M66VCLWrb+Z//2QC6iKqDAAAC 5UlEQVRIib2W3W8SQRDA+a/HEBONGqPGRNP4YNQ3EyUYTUqQKjbVBx5IpbRQwCscl+OA40NC kQbK5+HM7ma5u3K5WsBkc5ndvZnf7uzuzAQWC9hqC/wnwMUFGAaUy6INhzRomqKraVCpQLsN 4zFYFk1Np9Dp0CBOVauk7gMYjUih1QJddwPw22wSHm2hPJnAbEYCdnGw0aAv6l7XRdyoHcBl NFqrkdHLS+j1aB1IRRhO4Z64sDEAbhSFfl+4y/8MvpkAKUdLtqA3JuHxsXCRZkAwBXfS5MxI 2f0/IlfaOfztDcDxJ1mST1Vab6JE8luVVn0VgBu9CSBcJPlnm+RYTSigHNX+BYDO3TOok2hB ZwiKATkV+szvSZ3GQxrJzwskd8ckt7uQ1yBUEFpFwwFIMPfyNp0zQESlie+a4y6iglEnvz/I QH8Ct1LwNCfODVXwdobzpHWgipstAWnnlQ3M5xBjK/3yS1jHe8KvB8o7JzTF/bNrLNXwoXFH fVVoWd2uN8BrgrcfDZq6naZvoeeYuqp1E0B9II4reASj2XoAe5MvyFrAfeall4qb7QWwt5nl B8D2nvl639wa4A17DRFjbYD9/kqdiSVOWN5RX4DdjuV7yMU/y+XYwRu7RdEqTT1kQemwswXA s7wIKfh9p20UgM/4lIWQR8dQ1ukd3Duhw+dJAuNzrEKz8bNlzoizBx9XHHl09SFP5mRoj4Wz EAsGOxmS9T6NKyrkNPjI8FEFsiUCyJi2X3Lk0dXXFH2Chl4z1ys9Uv7MlA9MGg/n3P8jAPPo J4XkFAvpMo96Auom3E1DME27QUCGhfRXZ54AdNqHwrVDBQKyzOKLnCgpyhrjHYFeWw2Q4GRT FCg8j3oWXvaiiNcQmI3lIXOLGKV5NcW7XBgMliWWP4Bfj5Xj5+d0mLKOcpUa/Le1ALghLGRk JegqljYAQJnKGU10eR7lLwD/kXl0LQA6BMtT2eUFK0/sMo9uvbr+CztK5Y3mPSskAAAAAElF TkSuQmCC --------------040403030008010805090101 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot --------------040403030008010805090101 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ png-mng-misc mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/png-mng-misc --------------040403030008010805090101--