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--