- From: Haeusler Reinhard <reinhard.haeusler@siemens.com>
- Date: Tue, 27 Aug 2002 08:36:42 +0200
- To: "'chris@w3.org'" <chris@w3.org>, "'www-svg@w3.org'" <www-svg@w3.org>
- Message-ID: <C10F60785AE7D211B6E00800060DA391022FEFCB@vieg128a.gud.siemens.at>
Sorry - my English is not perfect ... ;-( Hello Chris, hello W3 members, I like the concept of the various XML based languages, especially the vector graphics format SVG ;-) But for the pixel graphics there is currently no XML based format available (only binary formats, like your PNG or the old GIF). So I suggested a concept for such a pixel format, called PPG (portable pixel graphics), and I want that to be also an internet standard. This, because in XHTML documents everyone could include parts with the graphics data in textual form in the document - and therefore in the future no one would need to insert references to binary picture files in XHTML documents. (Exceptions to this are the binary format JPEG for photos of a camera and your PNG format for large compressed pixel data.) Especially I would not need a tool and file for simple graphics elements, like multi-colored points and so on. The new format should be interoperable with the already defined standard SVG - is a mixed use directly possible ? (E.g. a SVG part which refers to - or already contains - a PPG part.) - Please give me a hint to this topic - Thanks! I want you to add this new format to your Web graphics concept, to have the following list of XML graphic standards: - XML-based: SVG + PPG - compressed-binary: JPEG + PNG The MIME type is currently not registered, but it could be like "image/ppg" (or similar). Please send me your suggestions or requests to the below described XML-based pixel graphics format: Possibly the name and short hand (or file name extension) is requested to be an other one (?) Also possibly the structure of the head (info) part and/or the body (data) part is requested to be changed generally. (E.g. instead of the pixel data storage as 'color layer' it could be done as a direct pixel, similarly to the method used in the PNG format.) The only things of my suggestion, which should not be changed, are the manually (without a tool) writeable format and the XML base of it. Also the support for simple transparency (not variable translucency) should be a part of this format. The new pixel graphics format should be the low end graphics format for simplest usage on Web pages - e.g. for multi-colored points. Here is now my suggestion and I am looking forward to get your response to this concept. --> Many thanks in advance! Best regards, Reinhard Häusler mailto:reinhard.haeusler@siemens.com --- ---------------------------------------------------- PPG ... Portable-Pixel-Graphics ---------------------------------------------------- Properties: The format is XML-based - it should be defined via an DTD or an XML schema - to be done ;-) It supports transparent graphics parts, like the old GIF format. Picture data structure: - Structure of a whole picture: Every so called 'color layer' of the whole graphics is stored in one element, called layer. Every layer contains data in the structure: outer for vertical sequence - and inner for horizontal sequence. - Horizontal picture layer structure: Every byte, as sequence of 8 bits represents 8 pixels (horizontal side by side). - Vertical picture layer structure: Every line (with horizontal structure) follows side by side the other one. Possible there is an better word instead of layer (could be also used for the XML tag) ... :-) General structure of the pixel graphics format: - info part with a data type information (and possible with an to the XML head part additional semantic version information) - data part with a color palette (with 'transparent' information) and the so called 'layer list' (with the pixel informations). Details of the pixel graphics format: The mandatory type information contains a slash ('/') separated word of the format "PPG/<x-pix>x<y-pix>/<bit-depth>", which means a pixel graphics picture with horizontal <x-pix> pixels, vertical <y-pix> pixels and color depth of <bit-depth> bits. The optional version information holds a simple version string. The mandatory color palette consists of the color definitions (using the usual HTML 'rgb'-format in textual form - e.g. '#00FF00') and the only one transparent definition for one of in this color palette defined colors. The mandatory layer list consists of a sequence of layer definitions (using a similar hexadecimal textual form - without the char '#'). Every layer definition consists of a sequence of logical lines, which themselves consists of a sequence of bytes. Simple example: PPG definition for a small pixel graphic (16 x 16 pixels) with 4 colors. Done in two syntax variants ... :-) Remark: Currently there is only this example to 'define' the used XML tags - DTD or XML schema definition for it is to be done! <?xml version="1.0" encoding="ISO8859-1" ?> <!-- Example_small.PPG --> <!-- ================= --> <!-- Simple Example of a PPG (portable pixel graphics) format file --> <!-- Reinhard Häusler --> <!-- Date: 2002-08-26 --> <!-- ************* --> <!-- XML like head --> <!-- to be defined - reference to DTD or XML schema --> <!-- ************* --> <ppg> <info><!-- info part (instead of head) --> <type>PPG/16x16/2</type><!-- this means: 16 (horizontal) x 16 (vertical) pixels and 2 bit color depth --> <version>0.0.1</version><!-- no valid version available now - only a suggestion for working --> </info> <data><!-- data part (instead of body) --> <palette><!-- list of the color definitions and the one transparent definition --> <!-- explanation for 'bit sequence': 'ab' means layer 0 is 'a' and layer 1 is 'b' --> <color num="0">#000000</color><!-- 0 means the bit sequence '00' --><!-- black --> <color num="1">#007700</color><!-- 1 means the bit sequence '01' --> <color num="2">#007700</color><!-- 2 means the bit sequence '10' --> <color num="3">#00FF00</color><!-- 3 means the bit sequence '11' --><!-- green --> <transparent="0" /><!-- this means: color with num="0" is transparent --> <!-- (it could also be empty for no transparent color) --> </palette> <layers><!-- list of layer definitions --> <layer num="0"><!-- list of pixel lines of layer 0 --> <b>0FF0</b><b>1FF8</b><b>1FF8</b><b>3FFC</b><!-- byte-sequences 1 to 4 (of layer 0) --> <b>3FFC</b><b>7FFE</b><b>7FFE</b><b>FFFF</b><!-- byte-sequences 5 to 8 (of layer 0) --> <b>FFFF</b><b>7FFE</b><b>7FFE</b><b>3FFC</b><!-- byte-sequences 9 to 12 (of layer 0) --> <b>3FFC</b><b>1FF8</b><b>1FF8</b><b>0FF0</b><!-- byte-sequences 13 to 16 (of layer 0) --> </layer> <layer num="1"><!-- list of pixel lines of layer 1 --> <b>0000</b><b>0000</b><b>0FF0</b><b>1FF8</b><!-- byte-sequences 1 to 4 (of layer 1) --> <b>1FF8</b><b>3FFC</b><b>3FFC</b><b>7FFE</b><!-- byte-sequences 5 to 8 (of layer 1) --> <b>7FFE</b><b>3FFC</b><b>3FFC</b><b>1FF8</b><!-- byte-sequences 9 to 12 (of layer 1) --> <b>1FF8</b><b>0FF0</b><b>0000</b><b>0000</b><!-- byte-sequences 13 to 16 (of layer 1) --> </layer> </layers> </data> </ppg> <!-- (C) Reinhard Häusler 2002 --> A nearly shortest variant of this definition (if the concept above would generate too much overhead) is shown below - but this is more difficult to read ;-( <?xml version="1.0" encoding="ISO8859-1" ?> <!-- Example_min.PPG --> <!-- =============== --> <!-- Reinhard Häusler --> <!-- Date: 2002-08-26 --> <ppg> <i><!-- info --> <t>PPG/16x16/2</t><!-- type --> <v>0.0.1</v><!-- version --> </i> <d><!-- data --> <cp><!-- color-palette --> <c n="0">#000000</c><!-- color 0 --> <c n="1">#007700</c><!-- color 1 --> <c n="2">#007700</c><!-- color 2 --> <c n="3">#00FF00</c><!-- color 3 --> <t="0" /><!-- transparent --> </cp> <ll><!-- layer-list --> <l n="0"><!-- layer 0 --> 0FF0,1FF8,1FF8,3FFC,<!-- byte-sequences 1 to 4 (of layer 0) --> 3FFC,7FFE,7FFE,FFFF,<!-- byte-sequences 5 to 8 (of layer 0) --> FFFF,7FFE,7FFE,3FFC,<!-- byte-sequences 9 to 12 (of layer 0) --> 3FFC,1FF8,1FF8,0FF0 <!-- byte-sequences 13 to 16 (of layer 0) --> </l> <l n="1"><!-- layer 1 --> 0000,0000,0FF0,1FF8,<!-- byte-sequences 1 to 4 (of layer 1) --> 1FF8,3FFC,3FFC,7FFE,<!-- byte-sequences 5 to 8 (of layer 1) --> 7FFE,3FFC,3FFC,1FF8,<!-- byte-sequences 9 to 12 (of layer 1) --> 1FF8,0FF0,0000,0000 <!-- byte-sequences 13 to 16 (of layer 1) --> </l> </ll> </d> </ppg> Many combinations of this two concept versions or even other implementations are possible. --> Please make your suggestions to this syntax and/or semantics .... :-) Reinhard Häusler (mailto:reinhard.haeusler@siemens.com) - 2002-08-26
Received on Tuesday, 27 August 2002 02:36:05 UTC