An opaque blue circle on a transparent green background.
It is of color type 2 (PNG_COLOR_TYPE_RGB) and has a tRNS chunk after a PLTE chunk.
An opaque blue circle on a transparent green background.
It is of color type 2 (PNG_COLOR_TYPE_RGB) and has a tRNS chunk before a PLTE chunk. Since the PNG specification version 1.2 says “the tRNS chunk [...] must follow the PLTE chunk, if any”, libpng considers the tRNS chunk as invalid and ignores it.
Source: Generated with ImageMagick's convert
command:
convert -size 3x1 xc:red -alpha on -fill '#00F8' \ -draw 'point 1,0' \ -draw 'color 2,0 point' -scale 33x33 draw_points.png
It is of color type 3 (PNG_COLOR_TYPE_PALETTE) and has a tRNS chunk.
kodim*
License: released by the Eastman Kodak Company for unrestricted usage
License: released by the Eastman Kodak Company for unrestricted usage
It is kodim03_yuv420_8bpc.avif converted to grayscale and tagged as Gamma 1.6 gAMA PNG chunk.
License: released by the Eastman Kodak Company for unrestricted usage
It is kodim03_grayscale_gamma1.6.png converted into sRGB colorspace by Chrome using “Capture Node Screenshot” in DevTools.
License: released by the Eastman Kodak Company for unrestricted usage
Source: http://r0k.us/graphics/kodak/
cosmos*
License: Creative Commons Attribution license (reuse allowed)
Source: “Cosmos Laundromat” movie (frame at around 1 minute past the beginning)
License: “Irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use raw files from Signature Edits for free, including for commercial purposes, without permission from or attributing the photographer or Signature Edits.”
Source: Picture from https://www.signatureedits.com/free-raw-photos/, rescaled, modified color balance and converted with GIMP+Darktable to 16b PNG, metadata removed with exiftool -All=
.
The structure can be displayed using exiv2 -pS <file>
.
License: same as libavif
Source: Personal photo.
address | marker | length | data |
---|---|---|---|
0 | 0xffd8 SOI | ||
2 | 0xffe1 APP1 | 884 | Exif..II*...................... |
888 | 0xffe1 APP1 | 353 | http://ns.adobe.com/xap/1.0/.<x: |
1243 | 0xffe1 APP1 | 32417 | http://ns.adobe.com/xmp/extensio |
33662 | 0xffe0 APP0 | 16 | JFIF......... |
... | |||
33818 | 0xffe2 APP2 | 612 | ICC_PROFILE......T........mntrRG chunk 1/1 |
... |
License: same as libavif
Source: Personal photo edited with Gimp 2.10.
address | marker | length | data |
---|---|---|---|
0 | 0xffd8 SOI | ||
2 | 0xffe0 APP0 | 16 | JFIF.....,.,. |
20 | 0xffe1 APP1 | 1134 | Exif..II*...................... |
1156 | 0xffe1 APP1 | 3929 | http://ns.adobe.com/xap/1.0/.<?x |
5087 | 0xffe2 APP2 | 612 | ICC_PROFILE......T........mntrRG chunk 1/1 |
... |
License: same as libavif
Source: Metadata was extracted from paris_exif_xmp_icc.jpg
with exiftool -tagsfromfile paris_exif_xmp_icc.jpg paris_exif_xmp_icc.xmp
. The text of the first book of De finibus bonorum et malorum was manually inserted in that file under the tag xmp:Label
and the second book under the tag xmp:Nickname
(any <
or >
removed to avoid conflicts with XMP). The file was reconstructed with exiftool -tagsfromfile paris_exif_xmp_icc.xmp -Exif= -icc_profile= paris_exif_xmp_icc.jpg -o paris_extended_xmp.jpg
. The goal is to have a large XMP blob so that it can only be stored as multiple extended XMP chunks.
address | marker | length | data |
---|---|---|---|
0 | 0xffd8 SOI | ||
2 | 0xffe0 APP0 | 16 | JFIF.....,.,. |
20 | 0xffe1 APP1 | 5531 | http://ns.adobe.com/xap/1.0/.<?x |
5553 | 0xffe1 APP1 | 65535 | http://ns.adobe.com/xmp/extensio |
71090 | 0xffe1 APP1 | 65535 | http://ns.adobe.com/xmp/extensio |
136627 | 0xffe1 APP1 | 4791 | http://ns.adobe.com/xmp/extensio |
... |
License: same as libavif
Source: paris_exif_xmp_icc.jpg
loaded with avifReadImage()
, stripped of ICC and Exif, a zero byte appended to XMP, then written with avifJPEGWrite()
with quality 0 (without calling avifImageFixXMP()
).
address | marker | length | data |
---|---|---|---|
0 | 0xffd8 SOI | ||
2 | 0xffe0 APP0 | 16 | JFIF......... |
20 | 0xffe1 APP1 | 3930 | http://ns.adobe.com/xap/1.0/.<?x |
... |
License: same as libavif
Source: paris_exif_xmp_icc.jpg
loaded with avifReadImage()
then written with avifPNGWrite()
(modified to output metadata this way).
address | marker | length | data |
---|---|---|---|
8 | IHDR | 13 | |
33 | iCCP | 386 | libavif..(.u..+DQ..?3...E..... |
431 | zTXt | 631 | Raw profile type exif..H...[.. |
1074 | zTXt | 1076 | Raw profile type xmp..X..YQ..8 |
2162 | IDAT | ... | |
160456 | IEND | 0 |