Dateiformate für Rasterbilder .gif .png
GIF Graphics Interchange Format Compuserve, 1987-89 Palettenbilder mit max. 256 Einträgen Mehrere Teilbilder LZW-Komprimierung (Patent Unisys) Transparenz (1 Stufe) 1D-Interlacing Say „ping“ ! Portable Network Graphics www.cdrom.com/pub/png PNG spec 1.0 released as Informational RFC 2083 (IETF) Kompression Variable Transparenz 2D-Interlacing Farbraum-Unterstützung RGB-Bilder Graustufenbilder Palettenbilder
PNG Progressiver Bildaufbau Transparenz Alpha-Kanal: Maß der Deckkraft RGBA als 4. Byte A=0 durchsichtig A=2Bittiefe-1 opak Alpha-Kanal des GIF-Formates ordnet jedem Pixel das Attribut Transparent / nicht transparent zu. Alpha-Kanal des PNG-Formates ordnet jedem Pixel Deckkraft zu. Korrekter Schatten auf jedem Hintergrund !
PNG Transparenz
PNG Reihenfolge des Erscheinens der Pixel „Adam7“ Progressivität Interlacing 1 6 4 6 2 6 4 6 7 7 7 7 7 7 7 7 5 6 5 6 5 6 5 6 3 6 4 6 3 6 4 6 Gif-Interlacing 1. Schritt: jede 8. Zeile, Start: 0 2. Schritt: jede 8. Zeile, ab 4 3. Schritt: jede 4. Zeile, ab 2 4. Schritt: alle ungeraden
PNG: Dateistruktur Alle Bytes in Network Byte Order (Little Endian) Alle Integer-Werte 31 Bit, höchstes 0 PNG-Signatur: 137 80 78 71 13 10 26 10 (dezimal) \211 P N G \r \n \032 \n „Chunks“ IEND Länge Typ Daten CRC I H D R
PNG: Chunks Color type 1 Bild hat Palette 2 Bild hat Farbe 4 Bild hat Alphakanal sinnvolle Kombinationen 0,2,3,4,6 IHDR Width: 4 bytes Height: 4 bytes Bit depth: 1 byte Color type: 1 byte Compression method: 1 byte Filter method: 1 byte Interlace method: 1 byte Bittiefen: 1,2,4,8,16 für Graustufen 1,2,4,8 für Palettengröße 8,16 für RGB, RGBA, Grau+A Filter: verlustfreie Transformation pro Zeile z.B. Differenz zum Vorgängerpixel Compression 0: ähnlich LZ77 (zip, gzip, pkzip) zlib, RFC 1950
PNG: Chunks IDAT: PLTE: Bis zu 256 8 oder 16-Bit tiefe RGB-Werte Zeilenweise, vor jeder Zeile Filterbyte (None = 0), komprimiert mit zlib. PLTE: Bis zu 256 8 oder 16-Bit tiefe RGB-Werte gAMA: sample = lightout^gamma sample, lightout [0..1] 4 Byte Gamma-Wert, interpretiert als Gamma*100.000 Beispiel: 1/2.2 = 45455 cHRM: (Chroma) Weißpunkt (x,y) nach CIE Rot (x,y) Grün (x,y) Blau (x,y) x,y als 4 Byte Festkommazahlen mit 5 Dezimalen
PNG: Chunks tRNS: Für einfache Transparenz, besteht aus (je nach Bildart) einem Farbwert für Truecolor-Bilder einem Grauwert für Graufstufenbilder einer Alpha-Palette, die jeder Palettenfarbe einen Alpha-Wert zuordnet. sRGB: (1 Byte) 0: Perceptual 1: Relative colorimetric 2: Saturation 3: Absolute colorimetric Weitere Chunks pHYs (Pixelgröße) sPLT (suggested Palette) sBIT (signifcant Bits) tIME (Zeit) iTXT (international Text) sKGD (Background) tEXt zTXT (zipped text) hIST (histogramm) iCCP (color profile) pivate Chunks
sRGB: Standard RGB Color Space Vereinfachtes Color-Management fürs WEB Idee: Farbwerte so wählen, dass sie bei typischem Monitor in typischer Umgebung ungeändert übernommen werden können, um optimale Wiedergabe zu gewährleisten. Typische Umgebung: 200 lux Beleuchtung D50 Weißpkt. ITU-R BT.709 Fernsehstandard: Monitor-Gamma 2.2 Absolute Definition auf Basis CIE Typischer Monitor: 80 cd/m2 D65 Weißpkt. Monitor-/ Betrachter-Eigenschaften: dunkle Werte linear, darüber Gamma 2,4 Rot Grün Blau D65 x 0.6400 0.3000 0.1500 0.3127 y 0.3300 0.6000 0.0600 0.3290 z 0.0300 0.1000 0.7900 0.3583
sRGB: Standard RGB Color Space Nichtlineare RGB-Werte R‘, G‘, B‘ White Digital Count Black Digital Count