<?xml version="1.0" encoding="UTF-8"?> <ufwb version="1.3.1"> <grammar name="PNG Images" start="id:45" author="Andreas Pehnack" fileextension="png" uti="public.png"> <description>Grammar for the popular PNG image file format</description> <structure name="Defaults" id="46" encoding="ISO_8859-1:1987" endian="big" signed="no"> <description> Defines the default values. </description> </structure> <structure name="Header" id="48" extends="id:46" encoding="ISO_8859-1:1987" endian="big" signed="no"> <binary name="Eye catcher" mustmatch="yes" id="49" fillcolor="DE83F7" length="8"> <fixedvalues> <fixedvalue name="Eye catcher" value="89504E470D0A1A0A"/> </fixedvalues> </binary> </structure> <structure name="Chunk" id="51" extends="id:46" encoding="ISO_8859-1:1987" endian="big" signed="no"> <number name="Length" id="52" fillcolor="54FA8A" type="integer" length="4"/> <number name="Type" mustmatch="yes" id="53" fillcolor="68D6FB" type="integer" length="4" display="hex"/> <structure name="Data" id="54" length="prev.Length" fillcolor="FEFB8C"/> <binary name="CRC" id="56" fillcolor="FFD385" length="4"/> </structure> <structure name="IHDR" id="58" extends="id:51"> <number name="Length" id="59" type="integer"/> <number name="Type" id="60" type="integer"> <fixedvalues> <fixedvalue name="IHDR" value="0x49484452"/> </fixedvalues> </number> <structure name="Data" id="61"> <number name="Width" id="62" type="integer" length="4"/> <number name="Height" id="63" type="integer" length="4"/> <number name="Bit depth" id="64" type="integer" length="1"> <fixedvalues> <fixedvalue value="1"></fixedvalue> <fixedvalue value="2"></fixedvalue> <fixedvalue value="4"></fixedvalue> <fixedvalue value="8"></fixedvalue> <fixedvalue value="16"></fixedvalue> </fixedvalues> </number> <number name="Color type" id="65" type="integer" length="1"> <fixedvalues> <fixedvalue name="Type0" value="0"> <description> Each pixel is a grayscale sample. </description> </fixedvalue> <fixedvalue name="Type2" value="2"> <description> Each pixel is an R,G,B triple. </description> </fixedvalue> <fixedvalue name="Type3" value="3"> <description> Each pixel is a palette index; a PLTE chunk must appear. </description> </fixedvalue> <fixedvalue name="Type4" value="4"> <description> Each pixel is a grayscale sample, followed by an alpha sample. </description> </fixedvalue> <fixedvalue name="Type6" value="6"> <description> Each pixel is an R,G,B triple, followed by an alpha sample. </description> </fixedvalue> </fixedvalues> </number> <number name="Compression method" id="66" type="integer" length="1"> <fixedvalues> <fixedvalue name="deflate/inflate" value="0"> <description> deflate/inflate compression with a sliding window of at most 32768 bytes </description> </fixedvalue> </fixedvalues> </number> <number name="Filter method" id="67" type="integer" length="1"> <fixedvalues> <fixedvalue name="Adaptive" value="0"/> </fixedvalues> </number> <number name="Interlace method" id="68" type="integer" length="1"> <fixedvalues> <fixedvalue name="No interlace" value="0"/> <fixedvalue name="Adam7 interlace" value="1"/> </fixedvalues> </number> </structure> <binary name="CRC" id="70"/> </structure> <structure name="tIME" id="72" extends="id:51"> <number name="Length" id="73" type="integer"/> <number name="Type" id="74" type="integer"> <fixedvalues> <fixedvalue value="0x74494D45"/> </fixedvalues> </number> <structure name="Data" id="75"> <number name="Year" id="76" type="integer" length="2"/> <number name="Month" id="77" type="integer" length="1"/> <number name="Day" id="78" type="integer" length="1"/> <number name="Hour" id="79" type="integer" length="1"/> <number name="Minute" id="80" type="integer" length="1"/> <number name="Second" id="81" type="integer" length="1"/> </structure> <binary name="CRC" id="83"/> </structure> <structure name="tEXt" id="85" extends="id:51" floating="yes"> <number name="Length" id="86" type="integer"/> <number name="Type" id="87" type="integer"> <fixedvalues> <fixedvalue value="0x74455874"/> </fixedvalues> </number> <structure name="Data" id="88"> <string name="Key" id="89" type="zero-terminated"/> <string name="Text" id="90" type="zero-terminated"/> </structure> <binary name="CRC" id="92"/> </structure> <structure name="zTXt" id="94" extends="id:51" floating="yes"> <number name="Length" id="95" type="integer"/> <number name="Type" id="96" type="integer"> <fixedvalues> <fixedvalue value="0x7A545874"/> </fixedvalues> </number> <structure name="Data" id="97"> <string name="Key" id="98" type="zero-terminated"/> <number name="Compression method" id="99" type="integer" length="1"> <fixedvalues> <fixedvalue name="zlib with deflate" value="0"><description>zlib datastream with deflate compression</description></fixedvalue> </fixedvalues> </number> <binary name="Compressed Text" id="100" length="remaining"/> </structure> <binary name="CRC" id="102"/> </structure> <structure name="iTXt" id="104" extends="id:51" floating="yes"> <number name="Length" id="105" type="integer"/> <number name="Type" id="106" type="integer"> <fixedvalues> <fixedvalue value="0x69545874"/> </fixedvalues> </number> <structure name="Data" id="107"> <string name="Key" id="108" type="zero-terminated"/> <number name="Compression flag" id="109" type="integer" length="1"> <fixedvalues> <fixedvalue name="Uncompressed" value="0"><description>Uncompressed text</description></fixedvalue> <fixedvalue name="Compressed" value="1"><description>Compressed text</description></fixedvalue> </fixedvalues> </number> <number name="Compression method" id="110" type="integer" length="1"> <fixedvalues> <fixedvalue name="zlib with deflate" value="0"><description>zlib datastream with deflate compression</description></fixedvalue> </fixedvalues> </number> <string name="Language tag" id="111" type="zero-terminated"/> <string name="Translated keyword" id="112" type="zero-terminated"/> <string name="Text" id="113" type="zero-terminated"/> </structure> <binary name="CRC" id="115"/> </structure> <structure name="iCCP" id="117" extends="id:51"> <number name="Length" id="118" type="integer"/> <number name="Type" id="119" type="integer"> <fixedvalues> <fixedvalue value="0x69434350"/> </fixedvalues> </number> <structure name="Data" id="120"> <string name="Profile name" id="121" type="zero-terminated"/> <number name="Compression method" id="122" type="integer" length="1"> <fixedvalues> <fixedvalue name="zlib with deflate" value="0"><description>zlib datastream with deflate compression</description></fixedvalue> </fixedvalues> </number> <number name="Compressed profile" id="123" type="integer" length="1"/> </structure> <binary name="CRC" id="125"/> </structure> <structure name="tRNS" id="127" extends="id:51"> <number name="Length" id="128" type="integer"/> <number name="Type" id="129" type="integer"> <fixedvalues> <fixedvalue value="0x74524E53"/> </fixedvalues> </number> <structure name="Data" id="130"> <structure name="Color" id="131" repeatmax="unlimited"> <number name="Red" id="132" type="integer" length="1"/> <number name="Green" id="133" type="integer" length="1"/> <number name="Blue" id="134" type="integer" length="1"/> </structure> </structure> <binary name="CRC" id="137"/> </structure> <structure name="gAMA" id="139" extends="id:51"> <number name="Length" id="140" type="integer"/> <number name="Type" id="141" type="integer"> <fixedvalues> <fixedvalue value="0x67414D41"/> </fixedvalues> </number> <structure name="Data" id="142"> <number name="Gamma" id="143" type="integer" length="4"/> </structure> <binary name="CRC" id="145"/> </structure> <structure name="cHRM" id="147" extends="id:51"> <description> Applications that need device-independent specification of colors in a PNG file can use the cHRM chunk to specify the 1931 CIE x,y chromaticities of the red, green, and blue primaries used in the image, and the referenced white point </description> <number name="Length" id="148" type="integer"/> <number name="Type" id="149" type="integer"> <fixedvalues> <fixedvalue value="0x6348524D"/> </fixedvalues> </number> <structure name="Data" id="150"> <number name="White Point x" id="151" type="integer" length="4"/> <number name="White Point y" id="152" type="integer" length="4"/> <number name="Red x" id="153" type="integer" length="4"/> <number name="Red y" id="154" type="integer" length="4"/> <number name="Green x" id="155" type="integer" length="4"/> <number name="Green y" id="156" type="integer" length="4"/> <number name="Blue x" id="157" type="integer" length="4"/> <number name="Blue y" id="158" type="integer" length="4"/> </structure> <binary name="CRC" id="160"/> </structure> <structure name="PLTE" id="162" extends="id:51"> <number name="Length" id="163" type="integer"/> <number name="Type" id="164" type="integer"> <fixedvalues> <fixedvalue value="0x504C5445"/> </fixedvalues> </number> <structure name="Data" id="165"> <structure name="Color" id="166" repeatmax="unlimited"> <number name="Red" id="167" fillcolor="FF0000" type="integer" length="1"/> <number name="Green" id="168" fillcolor="00FF00" type="integer" length="1"/> <number name="Blue" id="169" fillcolor="0000FF" type="integer" length="1"/> </structure> </structure> <binary name="CRC" id="172"/> </structure> <structure name="hIST" id="174" extends="id:51"> <number name="Length" id="175" type="integer"/> <number name="Type" id="176" type="integer"> <fixedvalues> <fixedvalue value="0x68495354"/> </fixedvalues> </number> <structure name="Data" id="177"> <number name="Count" id="178" type="integer" length="2" repeatmax="unlimited"/> </structure> <binary name="CRC" id="180"/> </structure> <structure name="bKGD" id="182" extends="id:51"> <number name="Length" id="183" type="integer"/> <number name="Type" id="184" type="integer"> <fixedvalues> <fixedvalue value="0x624B4744"/> </fixedvalues> </number> <structure name="Data" id="185"> <binary name="Color Data" id="186" length="remaining"/> </structure> <binary name="CRC" id="187"/> </structure> <structure name="pHYs" id="189" extends="id:51"> <number name="Length" id="190" type="integer"/> <number name="Type" id="191" type="integer"> <fixedvalues> <fixedvalue value="0x70485973"/> </fixedvalues> </number> <structure name="Data" id="192"> <number name="Pixels per unit, x axis" id="193" type="integer" length="4"/> <number name="Pixels per unit, y axis" id="194" type="integer" length="4"/> <number name="Unit specifier" id="195" type="integer" length="1"> <fixedvalues> <fixedvalue name="unit is unknown" value="0"/> <fixedvalue name="unit is the metre" value="1"/> </fixedvalues> </number> </structure> <binary name="CRC" id="197"/> </structure> <structure name="sPLT" id="199" extends="id:51"> <number name="Length" id="200" type="integer"/> <number name="Type" id="201" type="integer"> <fixedvalues> <fixedvalue value="0x73504C54"/> </fixedvalues> </number> <structure name="Data" id="202"> <string name="Palette name" id="203" type="zero-terminated"/> <number name="Sample depth" id="204" type="integer" length="1"/> <structure name="Color" id="205" repeatmax="unlimited"> <number name="Red" id="206" fillcolor="FF0000" type="integer" length="1"/> <number name="Green" id="207" fillcolor="00FF00" type="integer" length="1"/> <number name="Blue" id="208" fillcolor="0000FF" type="integer" length="1"/> </structure> </structure> <binary name="CRC" id="211"/> </structure> <structure name="sRGB" id="213" extends="id:51" encoding="ISO_8859-1:1987" endian="big" signed="no"> <number name="Length" id="214" type="integer"/> <number name="Type" id="215" type="integer" display="hex"> <fixedvalues> <fixedvalue value="0x73524742"/> </fixedvalues> </number> <binary name="CRC" id="218"/> </structure> <structure name="IDAT" id="220" extends="id:51"> <number name="Length" id="221" type="integer"/> <number name="Type" id="222" type="integer"> <fixedvalues> <fixedvalue value="0x49444154"/> </fixedvalues> </number> <structure name="Data" id="223"> <binary name="Image Data" id="224" length="remaining"/> </structure> <binary name="CRC" id="226"/> </structure> <structure name="sBIT" id="228" extends="id:51"> <number name="Length" id="229" type="integer"/> <number name="Type" id="230" type="integer"> <fixedvalues> <fixedvalue value="0x73424954"/> </fixedvalues> </number> <structure name="Data" id="231"> <binary name="SignificantBits" id="232" length="remaining"/> </structure> <binary name="CRC" id="234"/> </structure> <structure name="IEND" id="236" extends="id:51"> <number name="Length" id="237" type="integer"/> <number name="Type" id="238" type="integer"> <fixedvalues> <fixedvalue value="0x49454E44"/> </fixedvalues> </number> <binary name="CRC" id="241"/> </structure> <structure name="PNG File" id="45" extends="id:46" consists-of="id:46" encoding="ISO_8859-1:1987" endian="big" signed="no"> <structref name="Header" id="243" structure="id:48"/> <structref name="IHDR" id="244" structure="id:58"/> <structure name="Chunks" id="245" repeatmax="unlimited" order="variable"> <structref name="tIME" id="246" repeatmin="0" structure="id:72"/> <structref name="iCCP" id="247" repeatmin="0" structure="id:117"/> <structref name="gAMA" id="248" repeatmin="0" structure="id:139"/> <structref name="cHRM" id="249" repeatmin="0" structure="id:147"/> <structref name="pHYs" id="250" repeatmin="0" structure="id:189"/> <structref name="PLTE" id="251" repeatmin="0" structure="id:162"/> <structref name="bKGD" id="252" repeatmin="0" structure="id:182"/> <structref name="IDAT" id="253" repeatmin="0" repeatmax="unlimited" structure="id:220"/> <structref name="iTXt" id="254" repeatmin="0" repeatmax="unlimited" structure="id:104"/> <structref name="zTXt" id="255" repeatmin="0" repeatmax="unlimited" structure="id:94"/> <structref name="tEXt" id="256" repeatmin="0" repeatmax="unlimited" structure="id:85"/> <structref name="tRNS" id="257" repeatmin="0" structure="id:127"/> <structref name="hIST" id="258" repeatmin="0" structure="id:174"/> <structref name="sBIT" id="259" repeatmin="0" structure="id:228"/> <structref name="sPLT" id="260" repeatmin="0" structure="id:199"/> <structref name="sRGB" id="261" repeatmin="0" structure="id:213"/> <structref name="IEND" id="262" repeatmin="0" structure="id:236"/> <structref name="Chunk" id="263" structure="id:51"/> </structure> </structure> </grammar> </ufwb>