<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dcsmith77</id>
	<title>MultimediaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multimedia.cx/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dcsmith77"/>
	<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php/Special:Contributions/Dcsmith77"/>
	<updated>2026-06-17T08:09:59Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.5</generator>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Max&amp;diff=9937</id>
		<title>Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Max&amp;diff=9937"/>
		<updated>2008-04-09T15:13:52Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Nuance PaperPort Image file format&lt;br /&gt;
&lt;br /&gt;
* Extension: max&lt;br /&gt;
* Company: [[Nuance Communications]]&lt;br /&gt;
* Samples: http://www.google.com.au/search?q=vigcj+filetype:max (google &amp;quot;vigcj&amp;quot; and find files with a .max extension)&lt;br /&gt;
&lt;br /&gt;
This format is undiscovered, but has ViGCj as the first 5 bytes of the format. It has the ability to store both text and images for a document.&lt;br /&gt;
&lt;br /&gt;
http://zenkov.freeforums.org/viewtopic.php?p=111&amp;amp;sid=fb08ba99e90212bc1f29ebef108d1f2c&lt;br /&gt;
&lt;br /&gt;
Apparently uses leadtools image format to store the image in the file.&lt;br /&gt;
Format partially reverse engineered here: http://maxview.cvs.sourceforge.net/maxview/decpp.c?revision=1.27&amp;amp;view=markup&lt;br /&gt;
[[Category:Undiscovered Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Abc&amp;diff=9442</id>
		<title>Abc</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Abc&amp;diff=9442"/>
		<updated>2008-02-06T01:57:06Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: Leadtools Advanced bitonal compression&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;leadtools abc (advanced bitonal compression)&lt;br /&gt;
[http://www.leadtools.com/SDK/Document/Document-Addon-LEAD-ABC.htm]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Max&amp;diff=9389</id>
		<title>Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Max&amp;diff=9389"/>
		<updated>2008-01-23T07:57:45Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paperport file format.&lt;br /&gt;
&lt;br /&gt;
This format is undiscovered, but has ViGCj as the first 5 bytes of the format. It has the ability to store both text and images for a document.&lt;br /&gt;
&lt;br /&gt;
Samples can be found by [http://www.google.com.au/search?q=vigcj+filetype:max | googling vigcj and finding files with a .max extension].&lt;br /&gt;
&lt;br /&gt;
http://zenkov.freeforums.org/viewtopic.php?p=111&amp;amp;sid=fb08ba99e90212bc1f29ebef108d1f2c&lt;br /&gt;
&lt;br /&gt;
apparently uses leadtools image format to store the image in the file&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Undiscovered Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=HD_Photo&amp;diff=8343</id>
		<title>HD Photo</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=HD_Photo&amp;diff=8343"/>
		<updated>2007-08-31T06:54:41Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==HD Photo==&lt;br /&gt;
&lt;br /&gt;
is a format developed by Microsoft. It is known under the following names &lt;br /&gt;
# 'Windows Media Photo'&lt;br /&gt;
# 'HD Photo (High Dynamic range Photo)' &lt;br /&gt;
# 'JPEG XR (JPEG eXtended Range)'.&lt;br /&gt;
&lt;br /&gt;
Windows Media Photo supports the following pixel formats: (from http://blogs.msdn.com/billcrow/archive/2006/06/22/642213.aspx)&lt;br /&gt;
&lt;br /&gt;
# 16bpp (16bits per channel x 1 channel) Grayscale Fixed Point.&lt;br /&gt;
# 16bpp (16bits per channel x 1 channel) Grayscale Floating Point.&lt;br /&gt;
# 48bpp (16bits per channel x 3 channels ) RGB Fixed Point.&lt;br /&gt;
# 48bpp (16bits per channel x 3 channels ) RGB Floating Point.&lt;br /&gt;
# 64bpp (16bits per channel x 4 channels ) RGBA Fixed Point.&lt;br /&gt;
# 64bpp (16bits per channel x 4 channels ) RGBA Floating Point.&lt;br /&gt;
# 32bpp (32bits per channel x 1 channel) Grayscale Fixed Point.&lt;br /&gt;
# 32bpp (32bits per channel x 1 channel) Grayscale Floating Point.&lt;br /&gt;
# 96bpp (32bits per channel x 3 channels ) RGB Fixed Point.&lt;br /&gt;
# 96bpp (32bits per channel x 3 channels ) RGB Floating Point.&lt;br /&gt;
# 128bpp (32bits per channel x 4 channels) RGBA Fixed Point.&lt;br /&gt;
# 128bpp (32bits per channel x 4 channels) RGBA Floating Point.&lt;br /&gt;
# 128bpp (32bits per channel x 4 channels) PRGBA Floating Point with Pre-multiplied alpha channel? &lt;br /&gt;
# 32bpp (8bits per channel + 8bits exponent) R'G'B'E.  R = R' x 10^E, G = G' x 10^E, B = B' x10^E.&lt;br /&gt;
&lt;br /&gt;
There are also CMYK, CMYKA, BGR555, BGR565, BGRA, ...&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Max&amp;diff=7778</id>
		<title>Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Max&amp;diff=7778"/>
		<updated>2007-04-27T10:00:29Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paperport file format.&lt;br /&gt;
&lt;br /&gt;
This format is undiscovered, but has ViGCj as the first 5 bytes of the format. It has the ability to store both text and images for a document.&lt;br /&gt;
&lt;br /&gt;
Samples can be found by googling vigcj and finding files with a .max extension.&lt;br /&gt;
&lt;br /&gt;
[[Category:Undiscovered Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Max&amp;diff=7777</id>
		<title>Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Max&amp;diff=7777"/>
		<updated>2007-04-27T09:55:26Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paperport file format.&lt;br /&gt;
&lt;br /&gt;
This format is undiscovered, but has ViGCj as the first 5 bytes of the format. It has the ability to store both text and images for a document.&lt;br /&gt;
&lt;br /&gt;
[[Category:Undiscovered Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Max&amp;diff=7776</id>
		<title>Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Max&amp;diff=7776"/>
		<updated>2007-04-27T09:53:53Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paperport file format.&lt;br /&gt;
&lt;br /&gt;
This format is undiscovered, but has ViGCj as the first 5 bytes of the format. It has the ability to store both text and images for a document.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=GarageBand&amp;diff=7775</id>
		<title>GarageBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=GarageBand&amp;diff=7775"/>
		<updated>2007-04-27T09:33:28Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Garageband is Apple's consumer multitrack editor.&lt;br /&gt;
&lt;br /&gt;
Garageband files are actually directories with a .band extenstion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the directory there is a projectData file and a Media directory containing source aiffs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The projectData file is an xml file describing the project along with a large chunk of base64 encoded data within the &amp;lt;data&amp;gt; tags.&lt;br /&gt;
&lt;br /&gt;
Samples can be found here: [http://nin.com/access/only/]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=GarageBand&amp;diff=7774</id>
		<title>GarageBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=GarageBand&amp;diff=7774"/>
		<updated>2007-04-27T09:31:31Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Garageband is Apple's consumer multitrack editor.&lt;br /&gt;
&lt;br /&gt;
Garageband files are actually directories with a .band extenstion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the directory there is a projectData file and a Media directory containing source aiffs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The projectData file is an xml file describing the project along with a large chunk of base64 encoded data within the &amp;lt;data&amp;gt; tags&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=GarageBand&amp;diff=7773</id>
		<title>GarageBand</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=GarageBand&amp;diff=7773"/>
		<updated>2007-04-27T09:30:47Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Garageband is Apple's consumer multitrack editor.&lt;br /&gt;
&lt;br /&gt;
Garageband files are actually directories with a .band extenstion.&lt;br /&gt;
Within the directory there is a projectData file and a Media directory containing source aiffs.&lt;br /&gt;
The projectData file is an xml file describing the project along with a large chunk of base64 encoded data within the &amp;amp;ltdata&amp;amp;gt tags&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Talk:FFmpeg_Wishlist&amp;diff=7617</id>
		<title>Talk:FFmpeg Wishlist</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Talk:FFmpeg_Wishlist&amp;diff=7617"/>
		<updated>2007-04-10T21:01:10Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;XMV demuxer could be RE'd from this:&lt;br /&gt;
http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1097094&amp;amp;group_id=53761&amp;amp;atid=471491&lt;br /&gt;
--[[User:Kostya|Kostya]] 06:13, 13 July 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Does it really need 'implement' on every line? such code duplication!&lt;br /&gt;
[[User:Compn|Compn]] 17:21, 4 December 2006 (EST)&lt;br /&gt;
:Yeah I know it needs some structure, feel free to clean this up. I just wanted a place to keep my ideas.--[[User:Merbanan|Merbanan]] 17:27, 4 December 2006 (EST)&lt;br /&gt;
:: how about putting it into sections like Demuxers, Decoders, Filters, etc? would you like this change? or would it be too complicated?&lt;br /&gt;
::: That sounds fine.--[[User:Merbanan|Merbanan]] 03:36, 5 December 2006 (EST)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I've made a first try at re-organizing the page. There's a lot of stuff left in Misc because I wasn't sure how to categorize it.  [[User:Dashcloud|Dashcloud]] 00:26, 10 December 2006 (EST)&lt;br /&gt;
:It does not look like dts in wav works: if you try to play Fire_VooDoo_Studio_30_second.wav without -f dts, it plays garbage (using svn-8448)[[User:Dashcloud|Dashcloud]]&lt;br /&gt;
::I have done my best to re-organize and clean-up this article, will do some futher cleanup after SoC really kicks-off  --[[User:Gamester17|Gamester17]] 23:20, 20 March 2007 (GMT+1)&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=CRYO_APC&amp;diff=7615</id>
		<title>CRYO APC</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=CRYO_APC&amp;diff=7615"/>
		<updated>2007-04-10T20:44:33Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extensions: .APC, .HNM, .BF, .ZIK&lt;br /&gt;
* Company: [[CRYO Interactive Entertainment]]&lt;br /&gt;
&lt;br /&gt;
This covers the audio format for one of the versions of CRYO's video formats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Credit==&lt;br /&gt;
This file comes from [http://www.wotsit.org wotsit.org] and was originally written by Valery V. Anisimovsky.&lt;br /&gt;
&lt;br /&gt;
== APC Audio Files==&lt;br /&gt;
&lt;br /&gt;
The music, sfx, speech and video (.HNM) soundtracks in some CRYO Interactive&lt;br /&gt;
games are .APC stand-alone files. APC file has the following header:&lt;br /&gt;
&lt;br /&gt;
 struct APCHeader&lt;br /&gt;
 {&lt;br /&gt;
  char	szID[8];&lt;br /&gt;
  char	szVersion[4];&lt;br /&gt;
  DWORD dwOutSize;&lt;br /&gt;
  DWORD dwSampleRate;&lt;br /&gt;
  LONG	lSampleLeft;&lt;br /&gt;
  LONG	lSampleRight;&lt;br /&gt;
  DWORD dwStereo;&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
''szID'' -- ID string, which is &amp;quot;CRYO_APC&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
''szVersion'' -- version ID string, all files in the mentioned games have this&lt;br /&gt;
set to &amp;quot;1.20&amp;quot;. Note that this field may, in principle, vary.&lt;br /&gt;
&lt;br /&gt;
''dwOutSize'' -- number of samples in the file. May be used for song length&lt;br /&gt;
(in seconds) calculation.&lt;br /&gt;
&lt;br /&gt;
''dwSampleRate'' -- sample rate for the file.&lt;br /&gt;
&lt;br /&gt;
''lSampleLeft'' -- the initial value for the left sample (see below).&lt;br /&gt;
&lt;br /&gt;
''lSampleRight'' -- the initial value for the right sample (see below).&lt;br /&gt;
&lt;br /&gt;
''dwStereo'' -- this seems to be boolean stereo flag: if this is not zero, the&lt;br /&gt;
audio stream in the file is stereo (music and partly video soundtracks),&lt;br /&gt;
otherwise it's mono (sfx, speech).&lt;br /&gt;
&lt;br /&gt;
The resolution is NOT specified in the header, so the default value (16-bit)&lt;br /&gt;
should be used.&lt;br /&gt;
&lt;br /&gt;
After the APCHeader IMA ADPCM compressed sound data comes. You may find&lt;br /&gt;
IMA ADPCM decompression scheme description further in this document.&lt;br /&gt;
&lt;br /&gt;
== IMA ADPCM Decompression Algorithm ==&lt;br /&gt;
&lt;br /&gt;
During the decompression four LONG variables must be maintained for stereo&lt;br /&gt;
stream: ''lIndexLeft, lIndexRight, lCurSampleLeft, lCurSampleRight'' and two --&lt;br /&gt;
for mono stream: ''lIndex, lCurSample''. At the beginning of the file you must&lt;br /&gt;
initialize ''lCurSampleLeft/Right'' variables to the values from APCHeader while&lt;br /&gt;
''lIndexLeft/Right'' are initialized to zeroes.&lt;br /&gt;
Note that LONG here is signed.&lt;br /&gt;
&lt;br /&gt;
Here's the code which decompresses one byte of IMA ADPCM compressed&lt;br /&gt;
stereo stream. Other bytes are processed in the same way.&lt;br /&gt;
&lt;br /&gt;
 BYTE Input; // current byte of compressed data&lt;br /&gt;
 BYTE Code;&lt;br /&gt;
 LONG Delta;&lt;br /&gt;
 &lt;br /&gt;
 Code=HINIBBLE(Input); // get HIGHER 4-bit nibble&lt;br /&gt;
 &lt;br /&gt;
 Delta=StepTable[lIndexLeft]&amp;gt;&amp;gt;3;&lt;br /&gt;
 if (Code &amp;amp; 4)&lt;br /&gt;
   Delta+=StepTable[lIndexLeft];&lt;br /&gt;
 if (Code &amp;amp; 2)&lt;br /&gt;
   Delta+=StepTable[lIndexLeft]&amp;gt;&amp;gt;1;&lt;br /&gt;
 if (Code &amp;amp; 1)&lt;br /&gt;
   Delta+=StepTable[lIndexLeft]&amp;gt;&amp;gt;2;&lt;br /&gt;
 if (Code &amp;amp; 8) // sign bit&lt;br /&gt;
   lCurSampleLeft-=Delta;&lt;br /&gt;
 else&lt;br /&gt;
   lCurSampleLeft+=Delta;&lt;br /&gt;
 &lt;br /&gt;
 // clip sample&lt;br /&gt;
 if (lCurSampleLeft&amp;gt;32767)&lt;br /&gt;
   lCurSampleLeft=32767;&lt;br /&gt;
 else if (lCurSampleLeft&amp;lt;-32768)&lt;br /&gt;
   lCurSampleLeft=-32768;&lt;br /&gt;
 &lt;br /&gt;
 lIndexLeft+=IndexAdjust[Code]; // adjust index&lt;br /&gt;
 &lt;br /&gt;
 // clip index&lt;br /&gt;
 if (lIndexLeft&amp;lt;0)&lt;br /&gt;
   lIndexLeft=0;&lt;br /&gt;
 else if (lIndexLeft&amp;gt;88)&lt;br /&gt;
   lIndexLeft=88;&lt;br /&gt;
 &lt;br /&gt;
 Code=LONIBBLE(Input); // get LOWER 4-bit nibble&lt;br /&gt;
 &lt;br /&gt;
 Delta=StepTable[lIndexRight]&amp;gt;&amp;gt;3;&lt;br /&gt;
 if (Code &amp;amp; 4)&lt;br /&gt;
   Delta+=StepTable[lIndexRight];&lt;br /&gt;
 if (Code &amp;amp; 2)&lt;br /&gt;
   Delta+=StepTable[lIndexRight]&amp;gt;&amp;gt;1;&lt;br /&gt;
 if (Code &amp;amp; 1)&lt;br /&gt;
   Delta+=StepTable[lIndexRight]&amp;gt;&amp;gt;2;&lt;br /&gt;
 if (Code &amp;amp; 8) // sign bit&lt;br /&gt;
   lCurSampleRight-=Delta;&lt;br /&gt;
 else&lt;br /&gt;
   lCurSampleRight+=Delta;&lt;br /&gt;
 &lt;br /&gt;
 // clip sample&lt;br /&gt;
 if (lCurSampleRight&amp;gt;32767)&lt;br /&gt;
   lCurSampleRight=32767;&lt;br /&gt;
 else if (lCurSampleRight&amp;lt;-32768)&lt;br /&gt;
   lCurSampleRight=-32768;&lt;br /&gt;
 &lt;br /&gt;
 lIndexRight+=IndexAdjust[Code]; // adjust index&lt;br /&gt;
 &lt;br /&gt;
 // clip index&lt;br /&gt;
 if (lIndexRight&amp;lt;0)&lt;br /&gt;
   lIndexRight=0;&lt;br /&gt;
 else if (lIndexRight&amp;gt;88)&lt;br /&gt;
   lIndexRight=88;&lt;br /&gt;
 &lt;br /&gt;
 // Now we've got lCurSampleLeft and lCurSampleRight which form one stereo&lt;br /&gt;
 // sample and all is set for the next input byte...&lt;br /&gt;
 Output((SHORT)lCurSampleLeft,(SHORT)lCurSampleRight); // send the sample to output&lt;br /&gt;
 &lt;br /&gt;
HINIBBLE and LONIBBLE are higher and lower 4-bit nibbles:&lt;br /&gt;
 #define HINIBBLE(byte) ((byte) &amp;gt;&amp;gt; 4)&lt;br /&gt;
 #define LONIBBLE(byte) ((byte) &amp;amp; 0x0F)&lt;br /&gt;
Note that depending on your compiler you may need to use additional nibble&lt;br /&gt;
separation in these defines, e.g. ''(((byte) &amp;gt;&amp;gt; 4) &amp;amp; 0x0F)''.&lt;br /&gt;
&lt;br /&gt;
StepTable and IndexAdjust are the tables given in the next section of&lt;br /&gt;
this document.&lt;br /&gt;
&lt;br /&gt;
Output() is just a placeholder for any action you would like to perform for&lt;br /&gt;
decompressed sample value.&lt;br /&gt;
&lt;br /&gt;
Of course, this decompression routine may be greatly optimized.&lt;br /&gt;
&lt;br /&gt;
As to mono sound, it's just analoguous:&lt;br /&gt;
&lt;br /&gt;
 Code=HINIBBLE(Input); // get HIGHER 4-bit nibble&lt;br /&gt;
 &lt;br /&gt;
 Delta=StepTable[lIndex]&amp;gt;&amp;gt;3;&lt;br /&gt;
 if (Code &amp;amp; 4)&lt;br /&gt;
   Delta+=StepTable[lIndex];&lt;br /&gt;
 if (Code &amp;amp; 2)&lt;br /&gt;
   Delta+=StepTable[lIndex]&amp;gt;&amp;gt;1;&lt;br /&gt;
 if (Code &amp;amp; 1)&lt;br /&gt;
   Delta+=StepTable[lIndex]&amp;gt;&amp;gt;2;&lt;br /&gt;
 if (Code &amp;amp; 8) // sign bit&lt;br /&gt;
   lCurSample-=Delta;&lt;br /&gt;
 else&lt;br /&gt;
   lCurSample+=Delta;&lt;br /&gt;
 &lt;br /&gt;
 // clip sample&lt;br /&gt;
 if (lCurSample&amp;gt;32767)&lt;br /&gt;
   lCurSample=32767;&lt;br /&gt;
 else if (lCurSample&amp;lt;-32768)&lt;br /&gt;
   lCurSample=-32768;&lt;br /&gt;
 &lt;br /&gt;
 lIndex+=IndexAdjust[Code]; // adjust index&lt;br /&gt;
 &lt;br /&gt;
 // clip index&lt;br /&gt;
 if (lIndex&amp;lt;0)&lt;br /&gt;
   lIndex=0;&lt;br /&gt;
 else if (lIndex&amp;gt;88)&lt;br /&gt;
   lIndex=88;&lt;br /&gt;
 &lt;br /&gt;
 Output((SHORT)lCurSample); // send the sample to output&lt;br /&gt;
 &lt;br /&gt;
 Code=LONIBBLE(Input); // get LOWER 4-bit nibble&lt;br /&gt;
 // ...just the same as above for lower nibble&lt;br /&gt;
&lt;br /&gt;
Note that HIGHER nibble is processed first for mono sound and corresponds to&lt;br /&gt;
LEFT channel for stereo.&lt;br /&gt;
&lt;br /&gt;
== IMA ADPCM Tables ==&lt;br /&gt;
&lt;br /&gt;
 LONG IndexAdjust[]=&lt;br /&gt;
 {&lt;br /&gt;
    -1,&lt;br /&gt;
    -1,&lt;br /&gt;
    -1,&lt;br /&gt;
    -1,&lt;br /&gt;
     2,&lt;br /&gt;
     4,&lt;br /&gt;
     6,&lt;br /&gt;
     8,&lt;br /&gt;
    -1,&lt;br /&gt;
    -1,&lt;br /&gt;
    -1,&lt;br /&gt;
    -1,&lt;br /&gt;
     2,&lt;br /&gt;
     4,&lt;br /&gt;
     6,&lt;br /&gt;
     8&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 LONG StepTable[]=&lt;br /&gt;
 {&lt;br /&gt;
    7,	   8,	  9,	 10,	11,    12,     13,    14,    16,&lt;br /&gt;
    17,    19,	  21,	 23,	25,    28,     31,    34,    37,&lt;br /&gt;
    41,    45,	  50,	 55,	60,    66,     73,    80,    88,&lt;br /&gt;
    97,    107,   118,	 130,	143,   157,    173,   190,   209,&lt;br /&gt;
    230,   253,   279,	 307,	337,   371,    408,   449,   494,&lt;br /&gt;
    544,   598,   658,	 724,	796,   876,    963,   1060,  1166,&lt;br /&gt;
    1282,  1411,  1552,  1707,	1878,  2066,   2272,  2499,  2749,&lt;br /&gt;
    3024,  3327,  3660,  4026,	4428,  4871,   5358,  5894,  6484,&lt;br /&gt;
    7132,  7845,  8630,  9493,	10442, 11487,  12635, 13899, 15289,&lt;br /&gt;
    16818, 18500, 20350, 22385, 24623, 27086,  29794, 32767&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
== HNM Movie Soundtracks ==&lt;br /&gt;
&lt;br /&gt;
.HNM movie hasn't got soundtrack inside the HNM movie file itself.&lt;br /&gt;
However the soundtrack for HNM movie is a stand-alone APC file, as a rule,&lt;br /&gt;
with the same file title. The format of such APC soundtracks is just the&lt;br /&gt;
same as described above.&lt;br /&gt;
&lt;br /&gt;
== APC Audio Files in BF Archives ==&lt;br /&gt;
&lt;br /&gt;
When stored in .BF resources, APC audio files are stored &amp;quot;as is&amp;quot;, without&lt;br /&gt;
compression or encryption. That means if you want to play/extract APC&lt;br /&gt;
file from the BF resource you just need to search for (''szID'') id-string&lt;br /&gt;
(&amp;quot;CRYO_APC&amp;quot;) and read APC header starting at the beginning position of&lt;br /&gt;
found id-string. This will give you starting point of the file and the size&lt;br /&gt;
of the file will be the sum of APCHeader size and the compressed audio stream&lt;br /&gt;
size correspondent to (''dwOutSize'') header field (that is, (''dwOutSize'') for&lt;br /&gt;
stereo stream and (''dwOutSize)/2'' for mono stream).&lt;br /&gt;
&lt;br /&gt;
== ZIK Audio Files ==&lt;br /&gt;
&lt;br /&gt;
In the game Chine music is in ZIK files. Most of them are simple RAW files:&lt;br /&gt;
16-bit signed stereo 22050 Hz (no header), except for only one which is a&lt;br /&gt;
regular WAV file. So, you can just load and play those ZIKs as RAWs (except&lt;br /&gt;
for one which is WAV).&lt;br /&gt;
&lt;br /&gt;
==PC Games Using CRYO APC==&lt;br /&gt;
*[http://www.mobygames.com/game/windows/atlantis-the-lost-tales Atlantis: The Lost Tales]&lt;br /&gt;
*[http://www.mobygames.com/game/windows/sacred-amulet Aztec: The Curse in the Heart of the &amp;quot;City of Gold&amp;quot; a.k.a Sacred Amulet]&lt;br /&gt;
*[http://www.mobygames.com/game/windows/egypt-ii-the-heliopolis-prophecy Egypt II]&lt;br /&gt;
*[http://www.mobygames.com/game/odyssey-the-search-for-ulysses Odyssey: The Search For Ulysses]&lt;br /&gt;
*[http://www.mobygames.com/game/china-the-forbidden-city China: The Forbidden City]&lt;br /&gt;
* Atlantis 2&lt;br /&gt;
* Zero Zone a.k.a Onderzoek 2098 [http://www.mobygames.com/game/windows/zero-zone] [http://en.wikipedia.org/wiki/ZeroZone]&lt;br /&gt;
&lt;br /&gt;
[[Category:Game Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Westwood_Studios&amp;diff=7614</id>
		<title>Westwood Studios</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Westwood_Studios&amp;diff=7614"/>
		<updated>2007-04-10T20:44:04Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Website: [http://www.westwood.com http://www.westwood.com]&lt;br /&gt;
&lt;br /&gt;
The gaming company behind the Command &amp;amp; Conquer series, currently owned by [[Electronic Arts]]. They are the creators of the [[VQA]] format.&lt;br /&gt;
&lt;br /&gt;
[[Category:Multimedia-related Companies]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Decoding_AAC_FIL&amp;diff=7611</id>
		<title>Decoding AAC FIL</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Decoding_AAC_FIL&amp;diff=7611"/>
		<updated>2007-04-10T18:43:01Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Part of [[Understanding AAC]]''&lt;br /&gt;
&lt;br /&gt;
This can apparently be used for extension data since libfaad2 checks for SBR data in the FIL chunk which is known to be applicable to later HE-AAC variants. There are other extension data types in the syntax. According to the libfaad2 logic, a FIL element can have either an SBR chunk or a series of other extension types. These are the defined extension types:&lt;br /&gt;
&lt;br /&gt;
* 1: FILL_DATA&lt;br /&gt;
* 2: DATA_ELEMENT&lt;br /&gt;
* 11: DYNAMIC_RANGE&lt;br /&gt;
* 12: SBR_DATA&lt;br /&gt;
* 13: SBR_DATA_CRC&lt;br /&gt;
&lt;br /&gt;
  local count&lt;br /&gt;
  local extra_count&lt;br /&gt;
  local extension_type&lt;br /&gt;
  4 bits: count&lt;br /&gt;
  if (count == 15)&lt;br /&gt;
    8 bits: extra_count&lt;br /&gt;
  count += extra_count&lt;br /&gt;
  4 bits: extension_type&lt;br /&gt;
&lt;br /&gt;
FILL_DATA:&lt;br /&gt;
  4 bits:  must be 0000b&lt;br /&gt;
  foreach 0..count-2&lt;br /&gt;
    8 bits: must be 0xA5 (10100101b)&lt;br /&gt;
&lt;br /&gt;
DATA_ELEMENT:&lt;br /&gt;
'''[unfinished]'''&lt;br /&gt;
&lt;br /&gt;
DYNAMIC_RANGE:&lt;br /&gt;
'''[unfinished]'''&lt;br /&gt;
&lt;br /&gt;
SBR_DATA:&lt;br /&gt;
'''[unfinished]'''&lt;br /&gt;
&lt;br /&gt;
SBR_DATA_CRC:&lt;br /&gt;
'''[unfinished]'''&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Oma&amp;diff=7610</id>
		<title>Oma</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Oma&amp;diff=7610"/>
		<updated>2007-04-10T18:41:36Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: revert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Extension: oma, omg&lt;br /&gt;
* Company: [[Sony]]&lt;br /&gt;
&lt;br /&gt;
Container format used to encapsulate [[Sony ATRAC|ATRAC3]] and ATRAC3+ for use with Sony's portable players. Files ending with .omg are protected with the [[OpenMG]] [[DRM]] system.&lt;br /&gt;
&lt;br /&gt;
The OMA file format contains a payload scrambled with a 32-bit value [http://www.waider.ie/hacks/workshop/c/mple/FILE_FORMAT_v2.txt]. The format is known to carry MP3 and ATRAC3 audio. The metadata format is a variant of ID3v2 and uses standard ID3v2 frame types, such as TIT2, TPE1, TALB and TCON. In addition to these standard frame types, TXXX and GEOB frames contain OpenMG-specific metadata.&lt;br /&gt;
&lt;br /&gt;
  TXX   OMG_TRACK  &amp;quot;track number (ASCII)&amp;quot;&lt;br /&gt;
  TXX   OMG_AGENR  &amp;quot;content description (ASCII)&amp;quot;&lt;br /&gt;
  TXX   OMG_ATPE1  &amp;quot;leader performer (ASCII)&amp;quot;&lt;br /&gt;
  GEOB  OMG_BLKSI  contains a metadata structure. observed strings include:&lt;br /&gt;
                      KEYRING&lt;br /&gt;
                      EKB&lt;br /&gt;
                      SHARE_P_SID&lt;br /&gt;
                      REFID&lt;br /&gt;
  GEOB  OMG_OLINF  binary blob &lt;br /&gt;
&lt;br /&gt;
[[Category:Container Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7609</id>
		<title>XPM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7609"/>
		<updated>2007-04-10T18:40:24Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''XPM''' (''X PixMap'') is an ASCII image format used by the X Window System. It was created in 1989 by Daniel Dardailler and Colas Nahaboo working at the INRIA, France, and was later enhanced by Arnaud Le Hors. It is intended primarily for creating icon pixmaps, and supports transparent color. It has a simple structure, deriving from the earlier [[XBM]] syntax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Three styles are known, the simple XPM2:&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;128 128 64 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;z c #f6f6f6&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;Z c #eeeeee&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., palette using '''1''' character codes''&lt;br /&gt;
:&amp;lt;tt&amp;gt;@ c #080808&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;. c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;............................................&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''truncated first row, each dot is a pixel with colour &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; as defined above.''&lt;br /&gt;
&lt;br /&gt;
This is about an XPM2 image with width 128, height 128, 64 colours, using one character per pixel.&lt;br /&gt;
One tool is known to use only '''a''' to '''p''' for 16 colours, switching to '''aa''' up to '''dp''' for 64 colours,&lt;br /&gt;
but still reading single character encodings for 64 colours, compare [[Base64]].&lt;br /&gt;
 &lt;br /&gt;
With more colours the codes use more characters, e.g. '''aa''' up to '''pp''' for 16*16=256 colours. This is less useful&lt;br /&gt;
for text editors, because a string '''ab''' could be actually the middle of two adjacent pixels '''dabc'''. Spaces are&lt;br /&gt;
allowed as colour code, see [[#External links|links]], but might be a bad idea depending on the used text editor. Without&lt;br /&gt;
control codes, space, and quote (needed in XPM1 and XPM3) 128-33-2=93 [[ASCII]] characters are available for single character&lt;br /&gt;
colour codes.      &lt;br /&gt;
&lt;br /&gt;
It's helpful if the converter from other formats to XPM can sort the palette from white to black, because one of the &lt;br /&gt;
reasons to edit an icon might be to get rid of antialiasing artefacts after a reduction of the number colours, adding&lt;br /&gt;
affected pixels to &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; acting as transparency colour (the dots in the example).&lt;br /&gt;
&lt;br /&gt;
For XPM2 it's clear how many lines belong to the image, two header lines, the second header line announcing the number of&lt;br /&gt;
colour codes (64 lines in the example above) and rows (height 128 in the example above), e.g. 2+64+128=194 lines.&lt;br /&gt;
&lt;br /&gt;
The other styles are designed to be used as is in C sources, example:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_format 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_width 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_height 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_ncolors 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_chars_per_pixel 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_colors[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;a&amp;quot;, &amp;quot;#ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;b&amp;quot;, &amp;quot;#000000&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;};&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_pixels[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., 48 rows with 48 pixels''.&lt;br /&gt;
&lt;br /&gt;
This is a black and white image in the first (1989) XPM format.&lt;br /&gt;
The source icon was in [[PNG]] format, and although it defined &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; as&lt;br /&gt;
transparent, this detail was lost in the conversion. The&lt;br /&gt;
hex. RGB &amp;lt;tt&amp;gt;#123456&amp;lt;/tt&amp;gt; codes can be also replaced by known&lt;br /&gt;
colour names found in a &amp;quot;well known location&amp;quot; &amp;lt;tt&amp;gt;rgb.txt&amp;lt;/tt&amp;gt;,&lt;br /&gt;
where &amp;quot;well known location&amp;quot; depends on the operating &lt;br /&gt;
system and the used tools. The XPM &amp;quot;colour&amp;quot; name for transparency is '''none'''.&lt;br /&gt;
&lt;br /&gt;
Just for the records the same image in the other styles:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;48 48 2 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;a c #ffffff&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;b c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt; /* XPM */&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; static char * XFACE[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;48 48 2 1&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;a c #ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;b c #000000&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
The latter format is XPM3, the common format used&lt;br /&gt;
for the X Window System since about 1991. The '''c'''&lt;br /&gt;
means &amp;quot;colour&amp;quot;, it's possible to add '''m''' for&lt;br /&gt;
&amp;quot;monochrome&amp;quot; output, '''g''' for &amp;quot;grayscale&amp;quot;, and '''s''' for &amp;quot;symbolic&amp;quot;, &lt;br /&gt;
explaining what a defined colour is supposed to do.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;symbolic&amp;quot; feature allows to adjust colours&lt;br /&gt;
depending on the context where they are used, like&lt;br /&gt;
say &amp;lt;tt&amp;gt;s border c blue&amp;lt;/tt&amp;gt; could be adjusted on&lt;br /&gt;
a blue background.&lt;br /&gt;
&lt;br /&gt;
If the width, height, colours, and characters per&lt;br /&gt;
pixel line contains six instead of four numbers the&lt;br /&gt;
additional values indicate the coordinates of a&lt;br /&gt;
&amp;quot;hotspot&amp;quot;, '''0 0''' is the upper left corner&lt;br /&gt;
of a box containing the icon and the default. A&lt;br /&gt;
&amp;quot;hotspot&amp;quot; is used for mouse pointers and similar&lt;br /&gt;
applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Talk:FFmpeg_Summer_Of_Code_2007&amp;diff=7131</id>
		<title>Talk:FFmpeg Summer Of Code 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Talk:FFmpeg_Summer_Of_Code_2007&amp;diff=7131"/>
		<updated>2007-03-07T18:44:08Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== TIFF/TGA encoder? ==&lt;br /&gt;
&lt;br /&gt;
Why? It seems too small a task to be done in the course of SoC. --[[User:Kostya|Kostya]] 09:20, 7 March 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
: True, I'll rework it. --[[User:Merbanan|Merbanan]] 11:44, 7 March 2007 (EST)&lt;br /&gt;
&lt;br /&gt;
== DPX Encoder/Decoder ==&lt;br /&gt;
From what I understand this is the output of most film scanners. Having not used one I'm not 100% sure of this, and maybe someone could clarify, but my understanding is that film scanners output a collection of these files (I'm unsure if they're put in a container or not). There are already open source implementations in imagemagick and graphics magick.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=FFmpeg_Wishlist&amp;diff=7072</id>
		<title>FFmpeg Wishlist</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=FFmpeg_Wishlist&amp;diff=7072"/>
		<updated>2007-02-26T00:21:53Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: /* Decoders */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A temporary FFmpeg wish/todo list:&lt;br /&gt;
== Decoders ==&lt;br /&gt;
*  g723.1/rtp decoder (vivo g.723?)&lt;br /&gt;
*  g729/rtp decoder&lt;br /&gt;
*  Bethsoft VID decoder&lt;br /&gt;
*  a Monkey's Audio decoder, look at the c++ sdk sources&lt;br /&gt;
*  a JPEG2000 decoder&lt;br /&gt;
*  a gsm decoder&lt;br /&gt;
*  QCELP decoder [http://www.3gpp2.org/Public_html/specs/alltsgscfm.cfm spec] is c.s0020 and source is c.r0020&lt;br /&gt;
*  AMV decoder, http://scrub50187.com/ has the creator. wikipedia has [http://en.wikipedia.org/wiki/AMV_video_format articles] about the format also.&lt;br /&gt;
* integer only vorbis decoder (to replace tremor)&lt;br /&gt;
* LGPL'ed AAC decoder&lt;br /&gt;
* Fix wmv8 decoder&lt;br /&gt;
* MLP decoder&lt;br /&gt;
&lt;br /&gt;
== Demuxers ==&lt;br /&gt;
*  iff demuxer (with anim and sound decoding), xine has a decoder for it&lt;br /&gt;
*  g723.1/rtp demuxer&lt;br /&gt;
*  g729/rtp demuxer&lt;br /&gt;
*  Bethsoft VID demuxer&lt;br /&gt;
*  vivo demuxer, look at the mplayer vivo demuxer for reference&lt;br /&gt;
*  a xmv demuxer, look at http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/25207/focus=25224 and http://www.maxconsole.net/?mode=news&amp;amp;newsid=411 for hints; also look at http://sourceforge.net/tracker/index.php?func=detail&amp;amp;aid=1097094&amp;amp;group_id=53761&amp;amp;atid=471491 (should be a working demuxer/decoder)&lt;br /&gt;
*  AMV demuxer, http://scrub50187.com/ has the creator. wikipedia has [http://en.wikipedia.org/wiki/AMV_video_format articles] about the format also.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
*  a new audio api&lt;br /&gt;
*  radix-4 fft routines&lt;br /&gt;
*  grabbing from video devices under windows, apply this vfw capture patch http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2006-December/005607.html&lt;br /&gt;
*  -[h|v]flip options for ffplay&lt;br /&gt;
* improved documentation (web,manpage)&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
*  NSV muxer&lt;br /&gt;
* add PAFF to [[H.264]] decoder&lt;br /&gt;
* improve seeking in asf files&lt;br /&gt;
* clean up alac decoder&lt;br /&gt;
*  dts in wav support&lt;br /&gt;
*  raw dts support&lt;br /&gt;
* integrate speex, glue code or native&lt;br /&gt;
* add xing or vbri header parsing support to the mp3 decoder/parser&lt;br /&gt;
*  a aac parser so -acodec copy to mp4/mov works&lt;br /&gt;
* clean up the h263 rtp patch found on this page: http://www.salyens.com/downloads/index.html#ffmpeg-0.4.7&lt;br /&gt;
* add nice error messages to the flv demuxer(Nelly Moser) amr decoder and dv encoder/decoder&lt;br /&gt;
* game formats:&lt;br /&gt;
** [[Gremlin Digital Video]]&lt;br /&gt;
** [[ARMovie|ARMovie/RPL]]&lt;br /&gt;
** [[ESCAPE]]&lt;br /&gt;
** [[C93]]&lt;br /&gt;
** [[M95]]&lt;br /&gt;
** [[THP]]&lt;br /&gt;
* subtitle support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== [[Snow]] ==&lt;br /&gt;
* multiple reference frames improvements&lt;br /&gt;
** decide which frames to keep (e.g. long-term refs)&lt;br /&gt;
** some changes to the mv prediction code&lt;br /&gt;
* non translational motion compensation&lt;br /&gt;
** estimate non translational parameters per block by using surrounding motion vectors&lt;br /&gt;
** add a ac coded bit per block to switch between translational and non-translational MC&lt;br /&gt;
** borrow the non translational MC code from libmpcodecs/vf_perspective.c&lt;br /&gt;
** some changes to the encoder to decide between translational and non t.&lt;br /&gt;
* Trellis quantization (select quantized coefficient so as to minimize the rate distrortion&lt;br /&gt;
* 4x4 sized block support (we have 16x16 and 8x8 currently)&lt;br /&gt;
* 1/8 pel motion compensation / estimation support (pretty much just encoder changes needed which in case of the iterative me should be trivial)&lt;br /&gt;
* improve the intra color decision&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== A/V Filters ==&lt;br /&gt;
* adopt mplayer filter system or create new one.&lt;br /&gt;
**http://article.gmane.org/gmane.comp.video.ffmpeg.devel/39130&lt;br /&gt;
***for michaelni's idea of what to do&lt;br /&gt;
* decide on name.&lt;br /&gt;
** libavfilter (conflicts with LAVF)? libavmunge?&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=JPEG-LS&amp;diff=7049</id>
		<title>JPEG-LS</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=JPEG-LS&amp;diff=7049"/>
		<updated>2007-02-20T03:47:45Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''JPEG-LS''' was developed with the aim of providing a low complexity lossless image compression standard that could be able to offer better compression efficiency than [[lossless JPEG]]. Part 1 of this standard was finalized in 1999.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Multimedia-related Standards Bodies]]&lt;br /&gt;
[[Category:Container Formats]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=JPEG_2000&amp;diff=7048</id>
		<title>JPEG 2000</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=JPEG_2000&amp;diff=7048"/>
		<updated>2007-02-20T03:47:16Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''JPEG 2000''' is a [[wavelet]]-based image compression standard. It was created by the Joint Photographic Experts Group committee with the intention of superseding their original discrete cosine transform-based [[JPEG]] standard. Common filename extensions include .jp2 and .j2c, while the MIME type is image/jp2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7047</id>
		<title>XPM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7047"/>
		<updated>2007-02-20T03:44:23Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''XPM''' (''X PixMap'') is an ASCII image format used by the X Window System. It was created in 1989 by Daniel Dardailler and Colas Nahaboo working at the INRIA, France, and was later enhanced by Arnaud Le Hors. It is intended primarily for creating icon pixmaps, and supports transparent color. It has a simple structure, deriving from the earlier [[XBM]] syntax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Three styles are known, the simple XPM2:&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;128 128 64 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;z c #f6f6f6&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;Z c #eeeeee&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., palette using '''1''' character codes''&lt;br /&gt;
:&amp;lt;tt&amp;gt;@ c #080808&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;. c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;............................................&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''truncated first row, each dot is a pixel with colour &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; as defined above.''&lt;br /&gt;
&lt;br /&gt;
This is about an XPM2 image with width 128, height 128, 64 colours, using one character per pixel.&lt;br /&gt;
One tool is known to use only '''a''' to '''p''' for 16 colours, switching to '''aa''' up to '''dp''' for 64 colours,&lt;br /&gt;
but still reading single character encodings for 64 colours, compare [[Base64]].&lt;br /&gt;
 &lt;br /&gt;
With more colours the codes use more characters, e.g. '''aa''' up to '''pp''' for 16*16=256 colours. This is less useful&lt;br /&gt;
for text editors, because a string '''ab''' could be actually the middle of two adjacent pixels '''dabc'''. Spaces are&lt;br /&gt;
allowed as colour code, see [[#External links|links]], but might be a bad idea depending on the used text editor. Without&lt;br /&gt;
control codes, space, and quote (needed in XPM1 and XPM3) 128-33-2=93 [[ASCII]] characters are available for single character&lt;br /&gt;
colour codes.      &lt;br /&gt;
&lt;br /&gt;
It's helpful if the converter from other formats to XPM can sort the palette from white to black, because one of the &lt;br /&gt;
reasons to edit an icon might be to get rid of antialiasing artefacts after a reduction of the number colours, adding&lt;br /&gt;
affected pixels to &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; acting as transparency colour (the dots in the example).&lt;br /&gt;
&lt;br /&gt;
For XPM2 it's clear how many lines belong to the image, two header lines, the second header line announcing the number of&lt;br /&gt;
colour codes (64 lines in the example above) and rows (height 128 in the example above), e.g. 2+64+128=194 lines.&lt;br /&gt;
&lt;br /&gt;
The other styles are designed to be used as is in C sources, example:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_format 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_width 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_height 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_ncolors 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_chars_per_pixel 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_colors[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;a&amp;quot;, &amp;quot;#ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;b&amp;quot;, &amp;quot;#000000&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;};&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_pixels[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., 48 rows with 48 pixels''.&lt;br /&gt;
&lt;br /&gt;
This is a black and white image in the first (1989) XPM format.&lt;br /&gt;
The source icon was in [[PNG]] format, and although it defined &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; as&lt;br /&gt;
transparent, this detail was lost in the conversion. The&lt;br /&gt;
hex. RGB &amp;lt;tt&amp;gt;#123456&amp;lt;/tt&amp;gt; codes can be also replaced by known&lt;br /&gt;
colour names found in a &amp;quot;well known location&amp;quot; &amp;lt;tt&amp;gt;rgb.txt&amp;lt;/tt&amp;gt;,&lt;br /&gt;
where &amp;quot;well known location&amp;quot; depends on the operating &lt;br /&gt;
system and the used tools. The XPM &amp;quot;colour&amp;quot; name for transparency is '''none'''.&lt;br /&gt;
&lt;br /&gt;
Just for the records the same image in the other styles:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;48 48 2 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;a c #ffffff&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;b c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt; /* XPM */&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; static char * XFACE[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;48 48 2 1&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;a c #ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;b c #000000&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
The latter format is XPM3, the common format used&lt;br /&gt;
for the X Window System since about 1991. The '''c'''&lt;br /&gt;
means &amp;quot;colour&amp;quot;, it's possible to add '''m''' for&lt;br /&gt;
&amp;quot;monochrome&amp;quot; output, '''g''' for &amp;quot;grayscale&amp;quot;, and '''s''' for &amp;quot;symbolic&amp;quot;, &lt;br /&gt;
explaining what a defined colour is supposed to do.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;symbolic&amp;quot; feature allows to adjust colours&lt;br /&gt;
depending on the context where they are used, like&lt;br /&gt;
say &amp;lt;tt&amp;gt;s border c blue&amp;lt;/tt&amp;gt; could be adjusted on&lt;br /&gt;
a blue background.&lt;br /&gt;
&lt;br /&gt;
If the width, height, colours, and characters per&lt;br /&gt;
pixel line contains six instead of four numbers the&lt;br /&gt;
additional values indicate the coordinates of a&lt;br /&gt;
&amp;quot;hotspot&amp;quot;, '''0 0''' is the upper left corner&lt;br /&gt;
of a box containing the icon and the default. A&lt;br /&gt;
&amp;quot;hotspot&amp;quot; is used for mouse pointers and similar&lt;br /&gt;
applications.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XBM&amp;diff=7046</id>
		<title>XBM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XBM&amp;diff=7046"/>
		<updated>2007-02-20T03:43:50Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Usage&lt;br /&gt;
Primarily used for the storage of cursor and icon bitmaps for use in the X graphical user interface.&lt;br /&gt;
&lt;br /&gt;
Comments&lt;br /&gt;
XBM is a monochrome bitmap format in which data is stored as a C language data array.&lt;br /&gt;
&lt;br /&gt;
Normally, we think of images as data being stored as binary information in a file. In many cases, however, it is more convenient to represent smaller bitmapped images as collections of ASCII data rather than binary data. If such a small bitmapped image is being used by a software application, such as the cursors and icons found in all graphical user interfaces, the images may be stored as an array of ASCII characters, or even as an array of data values stored in the actual software source code.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
File Details&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
Storing small amounts of image data directly as C language source code is the philosophy behind the XBM (X BitMap) format. Small images that will be compiled into a software program are stored as simple arrays of data values, with one array used per stored image. XBM files are therefore nothing more than C language source files that are read by a compiler, rather than by a graphical display program or bitmap editor, as are most other graphical files.&lt;br /&gt;
&lt;br /&gt;
XBM bitmap data is mostly found in C source header files (with a .h file extension) and in separate XBM bitmap files (with no file extension). Multiple XBM image-data arrays may be stored in a single file, but none of the images may have the same name, or a naming conflict will result.&lt;br /&gt;
&lt;br /&gt;
The XPM (X PixMap) format is similar to XBM. XPM is a cousin of XBM and is capable of storing color bitmap image data and a colormap. XPM is also an ASCII format and is described in the XPM article.&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
XBM files have a height and width, and may define an optional hotspot within the image. The hotspot is used for bitmapped cursors and indicates the absolute position of the cursor on the screen. The hotspot on an arrow cursor is the tip of the arrow, which is usually located at position 0,0 in the bitmap.&lt;br /&gt;
&lt;br /&gt;
In place of the usual image file format header, XBM files have two or four #define statements. The first two #defines specify the height and width of the bitmap in pixels. The second two specify the position of the hotspot within the bitmap, and are not present if no hotspot is defined in the image.&lt;br /&gt;
&lt;br /&gt;
The labels of each #define contain the name of the image. Consider an image that is 8x8 pixels in size, named FOO, with a hotspot at pixel 0,7. This image contains the following #define statements:&lt;br /&gt;
&lt;br /&gt;
#define FOO_width 8&lt;br /&gt;
#define FOO_height 8&lt;br /&gt;
#define FOO_x_hot 0&lt;br /&gt;
#define FOO_y_hot 7&lt;br /&gt;
&lt;br /&gt;
The image data itself is a single line of pixel values stored in a static array. Data representing our FOO image appears as follows:&lt;br /&gt;
&lt;br /&gt;
static unsigned char FOO_bits[] = {&lt;br /&gt;
    0x3E, 0x80, 0x00, 0x7C, 0x00, 0x82, 0x41, 0x00};&lt;br /&gt;
&lt;br /&gt;
Because each pixel is only one bit in size, each byte in the array contains the information for eight pixels, with the first pixel in the bitmap (at position 0,0) represented by the high bit of the first byte in the array. If the image width is not a multiple of eight, the extra bits in the last byte of each row are not used and are ignored.&lt;br /&gt;
&lt;br /&gt;
XBM files are found in two variations: the older X10 format and the newer (as of 1986) X11 format. The only difference between these formats is how the pixel data is packed. The X11 flavor stores pixel data as 8-bit BYTEs. The older X10 flavor stores pixel data as 16-bit WORDs. There are no markers separating the rows of image data in either of these formats, and the size of an XBM array is limited only by the compiler and machine using the bitmap.&lt;br /&gt;
&lt;br /&gt;
The X10 XBM is considered obsolete. Make sure that any X software you write is able to read both the XBM X10 and X11 formats, but when you write data, use only the X11 XBM format.&lt;br /&gt;
File Details&lt;br /&gt;
&lt;br /&gt;
Following is an example of a 16x16 XBM bitmap stored using both its X10 and X11 variations. Note that each array contains exactly the same data, but is stored using different data word types:&lt;br /&gt;
&lt;br /&gt;
/* XBM X10 format */&lt;br /&gt;
#define xlogo16_width 16&lt;br /&gt;
#define xlogo16_height 16&lt;br /&gt;
static unsigned short xlogo16_bits[] = {&lt;br /&gt;
    0x0f80, 0x1e80, 0x3c40, 0x7820, 0x7810, 0xf008, 0xe009, 0xc005,&lt;br /&gt;
    0xc002, 0x4007, 0x200f, 0x201e, 0x101e, 0x083c, 0x0478,&lt;br /&gt;
    0x02f0};&lt;br /&gt;
/* XBM X11 format */&lt;br /&gt;
#define xlogo16_width 16&lt;br /&gt;
#define xlogo16_height 16&lt;br /&gt;
static unsigned char xlogo16_bits[] = {&lt;br /&gt;
    0x0f, 0x80, 0x1e, 0x80, 0x3c, 0x40, 0x78, 0x20, 0x78, 0x10,&lt;br /&gt;
    0xf0, 0x08, 0xe0, 0x09, 0xc0, 0x05, 0xc0, 0x02, 0x40, 0x07,&lt;br /&gt;
    0x20, 0x0f, 0x20, 0x1e, 0x10, 0x1e, 0x08, 0x3c, 0x04, 0x78,&lt;br /&gt;
    0x02, 0xf0};&lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7045</id>
		<title>XWD</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7045"/>
		<updated>2007-02-20T03:43:17Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;XWD is used to store images of captured X window displays.&lt;br /&gt;
&lt;br /&gt;
The XWD (X Window Dump) format is used specifically to store screen dumps created by the X Window System. Under X11, screen dumps are created by the xwd client. Using xwd, the window or background is selected to dump and an XWD file is produced containing an image of the window. If you issue the following command:&lt;br /&gt;
&lt;br /&gt;
% xwd -root &amp;gt; output.xwd&lt;br /&gt;
&lt;br /&gt;
the entire contents of the current display are saved to the file output.xwd. The id of the window to dump may also be specified by using the -id command-line flag on versions of xwd prior to Release 5.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
For Further Information&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
The first version of the X Window System to support window dumps was X10. Only gray-scale and color-mapped dumps were supported, and the bitmapped data was never compressed. The X10 version of XWD contains the following header:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _X10WindowDump&lt;br /&gt;
 {&lt;br /&gt;
  LONG  HeaderSize;         /* Header size in bytes */&lt;br /&gt;
  LONG  FileVersion;        /* X10 XWD file version (always 06h) */&lt;br /&gt;
  LONG  DisplayType;        /* Display type */&lt;br /&gt;
  LONG  DisplayPlanes;      /* Number of display planes */&lt;br /&gt;
  LONG  PixmapFormat;       /* Pixmap format */&lt;br /&gt;
  LONG  PixmapWidth;        /* Pixmap width */&lt;br /&gt;
  LONG  PixmapHeight;       /* Pixmap height */&lt;br /&gt;
  SHORT WindowWidth;        /* Window width */&lt;br /&gt;
  SHORT WindowHeight;       /* Window height */&lt;br /&gt;
  SHORT WindowX;            /* Window upper left X coordinate */&lt;br /&gt;
  SHORT WindowY;            /* Window upper left Y coordinate */&lt;br /&gt;
  SHORT WindowBorderWidth;  /* Window border width */&lt;br /&gt;
  SHORT WindowNumColors;    /* Number of color entries in window */&lt;br /&gt;
 } X10WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 06h.&lt;br /&gt;
&lt;br /&gt;
DisplayType is the type of the display from which the image was dumped.&lt;br /&gt;
&lt;br /&gt;
DisplayPlanes is the number of color planes in the image data. This value is typically 01h or 03h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat indicates the format of the bitmap. A value of 00h indicates a single-plane bitmap (XYFormat), and a value of 01h indicates a bitmap with two or more planes (ZFormat).&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight represent the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY represent the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth indicates the width of the window border in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowNumColors specifies the number of colors that can be displayed in the window.&lt;br /&gt;
&lt;br /&gt;
If the image is a PseudoColor image, a color map immediately follows the header. The color map contains one entry per color in the image, and each entry has the following format:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _X10ColorMap&lt;br /&gt;
 {&lt;br /&gt;
  WORD EntryNumber;     /* Number of the color-map entry */&lt;br /&gt;
  WORD Red;             /* Red-channel value */&lt;br /&gt;
  WORD Green;           /* Green-channel value */&lt;br /&gt;
  WORD Blue;            /* Blue-channel value */&lt;br /&gt;
 } X10COLORMAP[WindowNumColors];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color-map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
The XWD format was revised for Version 11 of the X Window System. The new format can store more types of image data and many fields have been added to the header and to the color map, reflecting the increased graphics capabilities of X11 over X10.&lt;br /&gt;
&lt;br /&gt;
The Version 11 XWD file format contains the following header:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _X11WindowDump&lt;br /&gt;
 {&lt;br /&gt;
  DWORD HeaderSize;     /* Size of the header in bytes */&lt;br /&gt;
  DWORD FileVersion;    /* X11WD file version (always 07h) */&lt;br /&gt;
  DWORD PixmapFormat;   /* Pixmap format */&lt;br /&gt;
  DWORD PixmapDepth;    /* Pixmap depth in pixels */&lt;br /&gt;
  DWORD PixmapWidth;    /* Pixmap width in pixels */ /&lt;br /&gt;
  DWORD PixmapHeight;   /* Pixmap height in pixels */&lt;br /&gt;
  DWORD XOffset;        /* Bitmap X offset */&lt;br /&gt;
  DWORD ByteOrder;      /* Byte order of image data */&lt;br /&gt;
  DWORD BitmapUnit;     /* Bitmap base data size */&lt;br /&gt;
  DWORD BitmapBitOrder; /* Bit-order of image data */&lt;br /&gt;
  DWORD BitmapPad;      /* Bitmap scan-line pad*/&lt;br /&gt;
  DWORD BitsPerPixel;   /* Bits per pixel */&lt;br /&gt;
  DWORD BytesPerLine;   /* Bytes per scan-line */&lt;br /&gt;
  DWORD VisualClass;    /* Class of the image */&lt;br /&gt;
  DWORD RedMask;        /* Red mask */&lt;br /&gt;
  DWORD GreenMask;      /* Green mask */&lt;br /&gt;
  DWORD BlueMask;       /* Blue mask */&lt;br /&gt;
  DWORD BitsPerRgb;     /* Size of each color mask in bits */&lt;br /&gt;
  DWORD NumberOfColors;         /* Number of colors in image */&lt;br /&gt;
  DWORD ColorMapEntries;        /* Number of entries in color map */&lt;br /&gt;
  DWORD WindowWidth;    /* Window width */&lt;br /&gt;
  DWORD WindowHeight;   /* Window height */&lt;br /&gt;
  LONG  WindowX;        /* Window upper left X coordinate */&lt;br /&gt;
  LONG  WindowY;        /* Window upper left Y coordinate */&lt;br /&gt;
  DWORD WindowBorderWidth;      /* Window border width */&lt;br /&gt;
 } X11WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 07h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat is the format of the image data. A value of 00h indicates a 1-bit (XYBitmap) format. A value of 01h indicates a single-plane bitmap (XYPixmap). A value of 02h indicates a bitmap with two or more planes (ZPixmap).&lt;br /&gt;
&lt;br /&gt;
PixmapDepth is the depth of the bitmap in pixels. This value is 1 to 32.&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
XOffset specifies the number of pixels to ignore at the beginning of each scan-line.&lt;br /&gt;
&lt;br /&gt;
ByteOrder indicates the byte order of the image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapUnit is the size of each data unit in each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitmapBitOrder indicates the order of the bits within each byte of image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapPad is the number of bits of padding added to each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitsPerPixel contains the size of each pixel in bits. For StaticGray and GrayScale images, this value is 1. For StaticColor and PseudoColor images, this value is 2 to 15 (typically 8). For TrueColor and DirectColor images, this value is 16, 24, or 32.&lt;br /&gt;
&lt;br /&gt;
BytesPerLine is the size of each scan line in bytes.&lt;br /&gt;
&lt;br /&gt;
VisualClass indicates the format of the image data:&lt;br /&gt;
&lt;br /&gt;
    * Even-numbered values indicate fixed-image data that cannot be changed in memory.&lt;br /&gt;
&lt;br /&gt;
    * Odd-numbered values indicate dynamic image data that may be altered.&lt;br /&gt;
&lt;br /&gt;
    * The values 00h (StaticGray) and 01h (GrayScale) specify a gray-scale image.&lt;br /&gt;
&lt;br /&gt;
    * The values 02h (StaticColor) and 03h (PseudoColor) indicate a color mapped image.&lt;br /&gt;
&lt;br /&gt;
    * The values 04h (TrueColor) and 05h (DirectColor) indicate true-color image data.&lt;br /&gt;
&lt;br /&gt;
RedMask, GreenMask, and BlueMask are the RGB mask values used by ZPixmaps.&lt;br /&gt;
&lt;br /&gt;
BitsPerRgb is the size of each RedMask, GreenMask, and BlueMask in bits.&lt;br /&gt;
&lt;br /&gt;
NumberOfColors specifies the number of colors in the image. This value also indicates the number of colors for colormapped images as well.&lt;br /&gt;
&lt;br /&gt;
ColorMapEntries contains the number of entries in the color map. This value is 00h if there is no color map.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight are the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY contain the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth is the width of the X Window border in pixels. If the border has not been captured in the dump, this value is 00h.&lt;br /&gt;
&lt;br /&gt;
The color map immediately follows the header. Each entry in the color map is 12 bytes in size and has the following format:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _X11ColorMap&lt;br /&gt;
 {&lt;br /&gt;
  DWORD EntryNumber;    /* Number of the color map entry */&lt;br /&gt;
  WORD  Red;            /* Red-channel value */&lt;br /&gt;
  WORD  Green;          /* Green-channel value */&lt;br /&gt;
  WORD  Blue;           /* Blue-channel value */&lt;br /&gt;
  CHAR  Flags;          /* Flag for this entry */&lt;br /&gt;
  CHAR  Padding;        /* WORD-align padding */&lt;br /&gt;
 } X11COLORMAP[ColorMapEntries];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
Flags indicates which of the color channels in the color map are actually used. The value of this field is typically 07h, indicating that all three channels are used.&lt;br /&gt;
&lt;br /&gt;
Padding is a byte set to a value of 00h and used to pad the color map entry out to an even WORD boundary in size.&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=WPG&amp;diff=7044</id>
		<title>WPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=WPG&amp;diff=7044"/>
		<updated>2007-02-20T03:41:32Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Usage&lt;br /&gt;
Used for storage of document and image data.&lt;br /&gt;
&lt;br /&gt;
Comments&lt;br /&gt;
WPG is supported by other applications mainly for compatibility, due to the widespread distribution of WordPerfect for MS-DOS.&lt;br /&gt;
&lt;br /&gt;
The WordPerfect Graphics Metafile (WPG) file format is a creation of WordPerfect Corporation (WPC) specifically for use with its line of software products. WPG image files are likely to be found in any environment that is supported by WPC products, including MS-DOS, UNIX, and the Apple Macintosh.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
File Details&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
WPG files are capable of storing both bitmap and vector data, which may contain up to 256 individual colors chosen from a palette of more than one million total colors. It is also possible to store Encapsulated PostScript (EPS) code in a WPG file.&lt;br /&gt;
&lt;br /&gt;
The particular version described in this article is the WordPerfect Graphic file format as created by the WPC products WordPerfect 5.x and DrawPerfect 1.x.&lt;br /&gt;
&lt;br /&gt;
A WPG-format file created using WordPerfect 5.0 can store either bitmap or vector image data, but not both at once. WPG files created under WordPerfect 5.1 and later can store both bitmap and vector image data in the same file. Unfortunately, there is no way to tell whether a WPG file contains both bitmap and vector data by reading the header. The actual record data from the body of the file must be read and interpreted.&lt;br /&gt;
&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
In WPC terminology, a WordPerfect Graphics Metafile contains a prefix area (the header) and a record area (the graphics data). All data in the metafile is written using the big-endian byte order.&lt;br /&gt;
File Details&lt;br /&gt;
&lt;br /&gt;
This section contains information about the prefix and record areas of a WordPerfect Graphics Metafile.&lt;br /&gt;
Prefix&lt;br /&gt;
&lt;br /&gt;
The prefix is 16 bytes in length and has the following format:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _WordPerfectGraphic&lt;br /&gt;
 {&lt;br /&gt;
  BYTE  FileId[4];    /* File Id Code (always FFh 57h 50h 43h) */&lt;br /&gt;
  DWORD DataOffset;   /* Stat of data in the WPG file (always 10h)*/&lt;br /&gt;
  BYTE  ProductType;  /* Product Code (always 1) */&lt;br /&gt;
  BYTE  FileType;     /* WPC File Code (always 16h) */&lt;br /&gt;
  BYTE  MajorVersion; /* Major Version Code (always 1) */&lt;br /&gt;
  BYTE  MinorVersion; /* Minor Version Code (always 0) */&lt;br /&gt;
  WORD  EncryptionKey;/* Password Checksum (0 = not encrypted) */&lt;br /&gt;
  WORD  Reserved;     /* Reserved field (always 0) */&lt;br /&gt;
 } WPGHEAD;&lt;br /&gt;
&lt;br /&gt;
FileId values are four contiguous bytes that contain the standard WPC File ID code. All WPC files starting with those created by WordPerfect 5.0 begin with this code. The values for these fields, in order, are FFh, 57h, 50h, and 43h.&lt;br /&gt;
&lt;br /&gt;
DataOffset contains an offset value pointing to the start of the record data in the WordPerfect Graphics Metafile. Because the record data always immediately follows the prefix, and the prefix is always 16 bytes in length, this value is always 10h.&lt;br /&gt;
&lt;br /&gt;
ProductType identifies the WPC software product that created the WPG file. This field always contains the value 01h, indicating that the file was created by the WordPerfect word processor. This value is always the same, even if the WPG file was created by a third-party software application.&lt;br /&gt;
&lt;br /&gt;
FileType identifies the type of data the file contains. For WPG files, the value of this field is always 16h.&lt;br /&gt;
&lt;br /&gt;
MajorVersion and MinorVersion contain the internal version number of the product for which the WPG file was created (which may not match the published, external version number of the product). For all WPG files, the MajorVersion field always contains a value of 01h, and the MinorVersion field always contains a value of 00h.&lt;br /&gt;
&lt;br /&gt;
EncryptionKey normally contains a value of 00h if the file is not encrypted. If the value of this field is non-zero, then the value is used as the checksum of the password and is used to decrypt the file. In the current version, WPG files are never encrypted and therefore the value of this field is always 00h.&lt;br /&gt;
&lt;br /&gt;
Reserved is not currently used and always contains a value of 00h.&lt;br /&gt;
Record Area&lt;br /&gt;
&lt;br /&gt;
Following the prefix in a WordPerfect Graphics Metafile is the record area. This area contains a sequence of objects and their attributes; this information is used to render the image. Any colormaps, bitmaps, and sections of PostScript code are also considered objects within the WPG file record area.&lt;br /&gt;
Record prefix&lt;br /&gt;
&lt;br /&gt;
Each record begins with a record prefix (a header in almost any other format). The record prefix may be two, four, or six bytes in length depending on the type of record it precedes. Here are the three possible record prefix formats:&lt;br /&gt;
&lt;br /&gt;
/* Two-byte prefix */&lt;br /&gt;
 typedef struct _TwoByteRecPrefix&lt;br /&gt;
 {&lt;br /&gt;
  BYTE  RecordType;     /* The Record Type identifier */&lt;br /&gt;
  BYTE  RecordLength;   /* The length of the record in bytes (0-FEh)*/&lt;br /&gt;
 } RECPREFIX2BYTE;&lt;br /&gt;
&lt;br /&gt;
/* Four-byte prefix */&lt;br /&gt;
 typedef struct _FourByteRecPrefix&lt;br /&gt;
 {&lt;br /&gt;
  BYTE  RecordType;     /* The Record Type identifier */&lt;br /&gt;
  BYTE  SizeIndicator;  /* WORD or DWORD length follows (always FFh)*/&lt;br /&gt;
  WORD  RecordLength;   /* The length of the record in bytes */&lt;br /&gt;
 } RECPREFIX4BYTE;&lt;br /&gt;
&lt;br /&gt;
/* Six-byte prefix */&lt;br /&gt;
 typedef struct _SixByteRecPrefix&lt;br /&gt;
 {&lt;br /&gt;
  BYTE  RecordType;     /* The Record Type identifier */&lt;br /&gt;
  BYTE  SizeIndicator;  /* WORD or DWORD length follows (always FFh)*/&lt;br /&gt;
  DWORD RecordLength;   /* The length of the record in bytes */&lt;br /&gt;
 } RECPREFIX6BYTE;&lt;br /&gt;
&lt;br /&gt;
Record type&lt;br /&gt;
&lt;br /&gt;
RecordType, the first field of each record, contains a value that identifies the type of data stored in the record as follows:&lt;br /&gt;
&lt;br /&gt;
Record Type&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Record Description&lt;br /&gt;
&lt;br /&gt;
01h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fill attributes&lt;br /&gt;
&lt;br /&gt;
02h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line attributes&lt;br /&gt;
&lt;br /&gt;
03h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Marker attributes&lt;br /&gt;
&lt;br /&gt;
04h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Polymarker&lt;br /&gt;
&lt;br /&gt;
05h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line&lt;br /&gt;
&lt;br /&gt;
06h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Polyline&lt;br /&gt;
&lt;br /&gt;
07h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rectangle&lt;br /&gt;
&lt;br /&gt;
08h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Polygon&lt;br /&gt;
&lt;br /&gt;
09h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Ellipse&lt;br /&gt;
&lt;br /&gt;
0Ah&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
0Bh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Bitmap (Type 1)&lt;br /&gt;
&lt;br /&gt;
0Ch&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text (Type 1)&lt;br /&gt;
&lt;br /&gt;
0Dh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text attributes&lt;br /&gt;
&lt;br /&gt;
0Eh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Color map&lt;br /&gt;
&lt;br /&gt;
0Fh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start of WPG data (Type 1)&lt;br /&gt;
&lt;br /&gt;
10h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
End of WPG data&lt;br /&gt;
&lt;br /&gt;
11h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
PostScript data follows (Type 1)&lt;br /&gt;
&lt;br /&gt;
12h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Output attributes&lt;br /&gt;
&lt;br /&gt;
13h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Curved polyline&lt;br /&gt;
&lt;br /&gt;
14h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Bitmap (Type 2)&lt;br /&gt;
&lt;br /&gt;
15h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start figure&lt;br /&gt;
&lt;br /&gt;
16h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start chart&lt;br /&gt;
&lt;br /&gt;
17h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
PlanPerfect data&lt;br /&gt;
&lt;br /&gt;
18h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text (Type 2)&lt;br /&gt;
&lt;br /&gt;
19h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start of WPG data (Type 2)&lt;br /&gt;
&lt;br /&gt;
1Ah&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text (Type 3)&lt;br /&gt;
&lt;br /&gt;
1Bh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
PostScript data follows (Type 2)&lt;br /&gt;
&lt;br /&gt;
The following is a listing of the record types, their formats, and the flags associated with them. For more information, please consult the Wordperfect documentation.&lt;br /&gt;
Fill Attributes&lt;br /&gt;
&lt;br /&gt;
BYTE 0&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Hollow&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Solid&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Finely spaced 45-degree lines&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium spaced 45-degree lines&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarsely spaced 45-degree lines&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine 45-degree hatching&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium 45-degree hatching&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse 45-degree hatching&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine vertical lines&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium vertical lines&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse vertical lines&lt;br /&gt;
&lt;br /&gt;
11&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 1 (least dense)&lt;br /&gt;
&lt;br /&gt;
12&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 2&lt;br /&gt;
&lt;br /&gt;
11&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 3&lt;br /&gt;
&lt;br /&gt;
13&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 4&lt;br /&gt;
&lt;br /&gt;
14&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 5&lt;br /&gt;
&lt;br /&gt;
15&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 6&lt;br /&gt;
&lt;br /&gt;
16&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 7 (densest)&lt;br /&gt;
&lt;br /&gt;
18&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots (medium)&lt;br /&gt;
&lt;br /&gt;
19&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots (coarse)&lt;br /&gt;
&lt;br /&gt;
20&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine horizontal&lt;br /&gt;
&lt;br /&gt;
21&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium horizontal&lt;br /&gt;
&lt;br /&gt;
22&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse horizontal&lt;br /&gt;
&lt;br /&gt;
23&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine 90-degree cross-hatching&lt;br /&gt;
&lt;br /&gt;
24&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium 90-degree cross-hatching&lt;br /&gt;
&lt;br /&gt;
25&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse 90-degree cross-hatching&lt;br /&gt;
&lt;br /&gt;
26&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine 45-degree lines&lt;br /&gt;
&lt;br /&gt;
27&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium 45-degree lines&lt;br /&gt;
&lt;br /&gt;
28&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse 45-degree lines&lt;br /&gt;
&lt;br /&gt;
29&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Brick pattern (horizontal)&lt;br /&gt;
&lt;br /&gt;
30&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Brick pattern (vertical)&lt;br /&gt;
&lt;br /&gt;
31&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
NA&lt;br /&gt;
&lt;br /&gt;
32&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Interweaving&lt;br /&gt;
&lt;br /&gt;
33&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
NA&lt;br /&gt;
&lt;br /&gt;
34&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
NA&lt;br /&gt;
&lt;br /&gt;
35&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Tile pattern&lt;br /&gt;
&lt;br /&gt;
36&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse lines (thick)&lt;br /&gt;
&lt;br /&gt;
37&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Alternating dark and light squares&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fill-color palette index (0-ffh)&lt;br /&gt;
&lt;br /&gt;
Line Attributes&lt;br /&gt;
&lt;br /&gt;
BYTE 0&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Solid&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash 1 (long)&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash-dot&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash 2 (medium)&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash-dot-dot&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash 3 (short)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line width (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
Marker Attributes&lt;br /&gt;
&lt;br /&gt;
BYTE 0&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Plus sign&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Star&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Circle&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Square&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Triangle&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Inverted triangle&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Diamond&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
45-degree cross&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Marker color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Marker height (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
Polymarker&lt;br /&gt;
&lt;br /&gt;
The first area, two bytes in length, holds the number of points. This is followed by a list of WORD coordinate pairs denoting the position of the actual points in arbitrary units.&lt;br /&gt;
Line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of start of line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of start of line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of end of line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of end of line&lt;br /&gt;
&lt;br /&gt;
These are all in arbitrary units.&lt;br /&gt;
Polyline&lt;br /&gt;
&lt;br /&gt;
The first area, two bytes in length, holds the number of points. This is followed by a list of WORD coordinate pairs denoting the position of the actual points in arbitrary units.&lt;br /&gt;
Rectangle&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X of lower left of rectangle&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y of lower left of rectangle&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height&lt;br /&gt;
&lt;br /&gt;
These are all in arbitrary units.&lt;br /&gt;
Polygon&lt;br /&gt;
&lt;br /&gt;
The first area, two bytes in length, holds the number of vertices. This is followed by a list of WORD coordinate pairs denoting the position of the actual vertices in arbitrary units.&lt;br /&gt;
Ellipse&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of center&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of center&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X radius&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y radius&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle measured from the x axis&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start of arc (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
End of arc (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Flags: bit 0 connect ends of arc to center, bit 1 connect to each other&lt;br /&gt;
&lt;br /&gt;
Bitmap Type 1&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Bits-per-pixel (1,2,4,8)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X-resolution of source (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y-resolution of source (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
This is followed by the bitmap data in BYTE format. Note that this may be RLE compressed.&lt;br /&gt;
Graphic Text Type 1&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Text length in bytes&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of text position&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of text position&lt;br /&gt;
&lt;br /&gt;
This is followed by the text string in BYTE format.&lt;br /&gt;
Graphics Text Attributes&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Font character width (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Font character height (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Font type--e.g., 0df0 Courier, 1150 Helvetica, 1950 Times&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Alignment, vertical (0 left, 1 center, 2 right)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Alignment, horizontal (0 base, 1 center, 2 cap, 3 bottom, 4 top)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation (degrees from horizontal)&lt;br /&gt;
&lt;br /&gt;
Colormap&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Number of colors&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Red value of first color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Green value of first color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Blue value of first color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Red value of last color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Green value of last color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Blue value of last color&lt;br /&gt;
&lt;br /&gt;
Start of WPG Data&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Version number&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Flags (bit 0 PostScript, maybe bitmap, bit 1 PostScript, no bitmap&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width of image (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height of image (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
End of WPG Data&lt;br /&gt;
&lt;br /&gt;
This record has no data associated with it. It is used to signal the end of a data section in the file and acts as an end-of-file marker.&lt;br /&gt;
PostScript Data Follows&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Actual PostScript data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Output Attributes (WordPerfect 5.0 only)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Background color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Foreground color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of lower left of clipping window&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of lower left of clipping window&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Clip window width&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Clip window height&lt;br /&gt;
&lt;br /&gt;
Size and position values are in arbitrary units.&lt;br /&gt;
Curved Polyline (WordPerfect 5.1 and later)&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Size of equivalent data in pre-5.1 files&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Number of points&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of first point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of first point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of first control point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of first control point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of last point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of last point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of last control point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of last control point&lt;br /&gt;
&lt;br /&gt;
Bitmap Type 2 (WordPerfect 5.1 and later)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle from horizontal (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Pixel depth (bits)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Horizontal resolution (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Vertical resolution (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
This is followed by the actual bitmap data, which is RLE compressed, although there appear to be some (possibly illegal) variants produced by third-party programs which are not.&lt;br /&gt;
Start Figure&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of object data&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle from horizontal (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of upper right&lt;br /&gt;
&lt;br /&gt;
This is followed by the figure data.&lt;br /&gt;
Start Chart&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of chart data in file&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value upper right&lt;br /&gt;
&lt;br /&gt;
This is followed by the actual chart data.&lt;br /&gt;
PlanPerfect Data&lt;br /&gt;
&lt;br /&gt;
This is data associated with WordPerfect Corporation's PlanPerfect application. Please contact WordPerfect for more information.&lt;br /&gt;
Graphics Text Type 2 (WordPerfect version 5.1 and later)&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Size of equivalent data written by version prior to 5.1&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle from horizontal (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of text (characters)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of text start&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of text start&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of text end&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of text end&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X scale factor&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y scale factor&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Type (0 window, 1 line, 2 bullet chart, 3 simple chart, 4 free-format chart)&lt;br /&gt;
&lt;br /&gt;
This is followed by the string data.&lt;br /&gt;
Start of WPG Data Type 2&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of data in file&lt;br /&gt;
&lt;br /&gt;
This is followed by the actual data.&lt;br /&gt;
RecordLength&lt;br /&gt;
&lt;br /&gt;
RecordLength, the second field of each record, may be a BYTE, WORD, or DWORD in size, depending upon the value stored in the first BYTE of this field (SizeIndicator above). Because it is possible for the same RecordType to have a different size each time it appears in the same WPG file, each record cannot be assigned a RecordType field of a fixed size. You must therefore determine the size of the RecordLength field when you read the record prefix.&lt;br /&gt;
&lt;br /&gt;
If the BYTE value read after the RecordType field is in the range of 00h to FEh, the RecordLength field is a BYTE in size, and this value is used as the number of bytes in the record. If the BYTE is the value FFh, then the RecordLength field is either a WORD or a DWORD in size.&lt;br /&gt;
&lt;br /&gt;
The next WORD of the prefix is then read. If the high bit of this WORD is 0, then this value is the length of the record. If the high bit is 1, then this value is the upper WORD value of a DWORD length value. The next WORD is read and is used as the lower WORD value in the DWORD. This DWORD value is then the length of the record. The following code should help to clarify this logic:&lt;br /&gt;
&lt;br /&gt;
 BYTE  RecordType;&lt;br /&gt;
 DWORD RecordLength;&lt;br /&gt;
 FILE *fp;&lt;br /&gt;
 RecordType = GetByte(fp);           /* Read the RecordType */&lt;br /&gt;
 RecordLength = GetByte(fp);         /* Read the RecordLength */&lt;br /&gt;
 if (RecordLength == 0xFF)           /* Not a BYTE value */&lt;br /&gt;
 {&lt;br /&gt;
  RecordLength = GetWord(fp);       /* Read the next WORD value */&lt;br /&gt;
  if(RecordLength &amp;amp; 0x8000)     /* Not a WORD value */&lt;br /&gt;
  {&lt;br /&gt;
    RecordLength &amp;lt;&amp;lt;= 16;      /* Shift value into the high WORD */&lt;br /&gt;
    RecordLength += GetWord(fp);    /* Read the low WORD value */&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Example Records&lt;br /&gt;
&lt;br /&gt;
The following is a description of several of the records found in the WPG format. For a complete listing of all records and values, refer to the WordPerfect Developer's Toolkit.&lt;br /&gt;
&lt;br /&gt;
The first record of a WPG file is always the Start WPG Data (0Fh) record. This record contains information on the size of the image and the version number of the WPG file and has the following format:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _StartWpgRecord&lt;br /&gt;
 {&lt;br /&gt;
  BYTE 	Version;        /* WPG Version Flags (always 01h) */&lt;br /&gt;
  BYTE 	WpgFlags;       /* Bit flags */&lt;br /&gt;
  WORD 	Width;          /* Width of image in WP Units */&lt;br /&gt;
  WORD 	Height;         /* Height of image in WP Units */&lt;br /&gt;
 } STARTWPGREC;&lt;br /&gt;
&lt;br /&gt;
Version indicates the WPG file version. This value is currently defined to be 01h.&lt;br /&gt;
&lt;br /&gt;
The eight bits in the WpgFlags field are used as flag values. If Bit 0 is set to 0, then there is no PostScript code included in this WPG file. If Bit 0 is set to 1, then PostScipt code is included in this file. Bits 1 through 7 are reserved and always set to 0.&lt;br /&gt;
&lt;br /&gt;
Width and Height contain the size of the image in WP Units (WPU), each of which is equal to 1/1200th of an inch.&lt;br /&gt;
&lt;br /&gt;
A ColorMapRecord (0Eh) normally follows the StartWpgRecord, unless the image is black and white. If no ColorMapRecord is present, then the default colormap is used instead. There is only one ColorMapRecord per WPG file, regardless of how many bitmap or vector objects the file contains. The current WPG format does not provide a way to assign separate colormaps to specific vector objects and bitmaps.&lt;br /&gt;
&lt;br /&gt;
All images stored in a WPG file, both bitmap and vector, use index values into the colormap to define their colors. This record may define an entire color map unique to this image, or it may define only a smaller colormap used to overlay a portion of the default colormap. To avoid problems with WPC products, the first 16 colors in the colormap should never be changed from their default values. The ColorMapRecord has the following format:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _ColorMapRecord&lt;br /&gt;
 {&lt;br /&gt;
  WORD  StartIndex;     /* The starting index of this color map */&lt;br /&gt;
  WORD  NumberOfEntries;/* The number of entries in this color map*/&lt;br /&gt;
  BYTE  *ColorMap[][3]; /* Color map triples */&lt;br /&gt;
 } COLORMAPREC;&lt;br /&gt;
&lt;br /&gt;
StartIndex indicates the starting color index number of this map.&lt;br /&gt;
&lt;br /&gt;
NumberOfEntries indicates the number of contiguous entries in the colormap from the starting index. If entries 178 though 244 in the default colormap were being replaced by this colormap, the value of StartIndex would be 178, and the value of NumberOfEntries would be 66. If the entire colormap were being replaced, the values of these fields would be 0 and 256 respectively.&lt;br /&gt;
&lt;br /&gt;
These two fields are followed by a sequence of three-byte triples, which hold the actual colormap data. The number of triples is equal to the value stored in the NumberOfEntries field. The number of bytes in this field is calculated by multiplying the value of the NumberOfEntries field by 3. The default colormap for WPG files is the same as the IBM VGA standard color table defined in the PS/2 Display Adapter manual.&lt;br /&gt;
&lt;br /&gt;
The VGA colormap structure is also shown in Chapter 2, in the section called &amp;quot;Examples of Palettes.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This colormap contains 256 color entries, each with a 1-byte red, green, and blue color value for a total of 768 map elements. The first 16 colors are those of the IBM EGA color table. Colors 17 through 32 are 16 gray-scale shades. The remaining 224 colors are a palette of 24 individual colors, each with three different intensity levels and three different saturation levels. The WPG color map uses eight bits for red and six bits each for green and blue.&lt;br /&gt;
&lt;br /&gt;
When displaying WPG images using a display adapter, such as the VGA, with fewer bits per primary color, the color values are truncated starting with the least significant bits. For a VGA adapter that has only 6 bits for red, all 8-bit red values in the color table are shifted to the right twice before the value is used. The green and blue values are not changed.&lt;br /&gt;
&lt;br /&gt;
As previously mentioned, a WPG file created with WordPerfect 5.0 can store either bitmap or vector image data, but not both. This is due to a limitation of the Bitmap (0Bh) record structure. This record is now considered obsolete and should not be used when you create new WPG files. The structure of this record is as follows:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _BitmapType1&lt;br /&gt;
 {&lt;br /&gt;
  WORD  Width;          /* Width of image in pixels */&lt;br /&gt;
  WORD  Height;         /* Height of image in pixels */&lt;br /&gt;
  WORD  Depth;          /* Number of bits per pixel */&lt;br /&gt;
  WORD  HorzRes;        /* Horizontal resolution of image */&lt;br /&gt;
  WORD  VertRes;        /* Vertical resolution of image */&lt;br /&gt;
 } BITMAP1REC;&lt;br /&gt;
&lt;br /&gt;
Width and Height describe the size of the bitmap in pixels.&lt;br /&gt;
&lt;br /&gt;
Depth contains the number of bits per pixel. The possible values of this field are 1, 2, 4, or 8 for 2-, 4-, 16-, and 256-color images.&lt;br /&gt;
&lt;br /&gt;
HorzRes and VertRes are the horizontal and vertical resolution of the original bitmap in pixels per inch. These values can also describe the minimum resolution of the screen required to display the image.&lt;br /&gt;
&lt;br /&gt;
The bitmap data follows this record structure. The Bitmap Type 1(0Bh) record was superseded by the Bitmap Type 2 (14h) record introduced with WordPerfect 5.1. This new record added five fields not found in the Bitmap Type 1 record. These fields contain information on the position of the bitmap on the output device. If you use a Bitmap Type 2 record, it is also possible to store multiple bitmaps in a single WPG file.&lt;br /&gt;
&lt;br /&gt;
The structure of the Bitmap Type 2 record is shown below:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _BitmapType2&lt;br /&gt;
 {&lt;br /&gt;
  WORD  RotAngle;       /* Rotation angle of bitmap (0-359) */&lt;br /&gt;
  WORD  LowerLeftX;     /* Lower-left X coordinate of image */&lt;br /&gt;
  WORD  LowerLeftY;     /* Lower-left Y coordinate of image */&lt;br /&gt;
  WORD  UpperRightX;    /* Upper-right X coordinate of image */&lt;br /&gt;
  WORD  UpperRightY;    /* Upper-right Y coordinate of image */&lt;br /&gt;
  WORD  Width;          /* Width of image in pixels */&lt;br /&gt;
  WORD  Height;         /* Height of image in pixels */&lt;br /&gt;
  WORD  Depth;          /* Number of bits per pixel */&lt;br /&gt;
  WORD  HorzRes;        /* Horizontal resolution of image */&lt;br /&gt;
  WORD  VertRes;        /* Vertical resolution of image */&lt;br /&gt;
 } BITMAP2REC;&lt;br /&gt;
&lt;br /&gt;
RotAngle is the rotation angle of the bitmap in degrees. This value may be in the range of 0 to 359, with 0 indicating the image is not rotated.&lt;br /&gt;
&lt;br /&gt;
LowerLeftX and LowerLeftY describe the location of the lower-left corner of the image in WPUs.&lt;br /&gt;
&lt;br /&gt;
UpperRightX and UpperRightY describe the location of the upper-right corner of the image in WPUs. Note that the origin point (0,0) of all WPG images is the lower left-hand corner of the output device.&lt;br /&gt;
&lt;br /&gt;
The remaining five fields, Width, Height, Depth, HorzRes, and VertRes, are identical to those in the Bitmap Type 1 record.&lt;br /&gt;
&lt;br /&gt;
It is possible to store two or more images in a WPG file by using multiple Bitmap records. The coordinate information found in a Bitmap Type 2 record will allow the images to be positioned on the output device so they do not overlap. The size of a bitmap in bytes may be determined by multiplying the Height, Width, and Depth fields and then dividing the product by 8:&lt;br /&gt;
&lt;br /&gt;
SizeInBytes = (Height * Width * Depth) / 8;&lt;br /&gt;
&lt;br /&gt;
Bitmap data is always stored in a WPG file using a byte-wise run-length encoding (RLE) algorithm. (See Chapter 9, Data Compression, for more information on run-length encoding algorithms.) Each scan line is encoded separately.&lt;br /&gt;
&lt;br /&gt;
There are four possible types of RLE packets in the WPG algorithm:&lt;br /&gt;
&lt;br /&gt;
    * Encoded packet&lt;br /&gt;
&lt;br /&gt;
    * Literal packet&lt;br /&gt;
&lt;br /&gt;
    * All-bits-on packet&lt;br /&gt;
&lt;br /&gt;
    * Repeat scan-line packet&lt;br /&gt;
&lt;br /&gt;
An encoded packet may encode a run of from 1 to 127 bytes in length. An encoded packet always has the most significant bit (MSB) as 1 and the seven least significant bits (LSBs) are a non-zero value. The length of the run is the value of the seven LSBs. If the MSB of this byte is 1, but the seven LSBs are set to 0, then the next byte is read as the run count and the byte value FFh is repeated &amp;quot;run count&amp;quot; times. If the MSB of the byte read is 0, and the seven LSBs are a non-zero value, then this is a literal run. The seven LSBs hold the run-count value and the next &amp;quot;run count&amp;quot; bytes are read literally from the encoded data stream. If the run count is 0, then the next byte is read as the run count and the previous scan line is repeated &amp;quot;run count&amp;quot; times.&lt;br /&gt;
&lt;br /&gt;
The pseudocode for the WPG RLE algorithm is shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Read a BYTE&lt;br /&gt;
 If the Most Significant Bit is ON&lt;br /&gt;
    If the 7 LSB are not 0&lt;br /&gt;
        The RunCount is the 7 least significant bits&lt;br /&gt;
        Read the next BYTE and repeat it RunCount times&lt;br /&gt;
    If the 7 LSB are 0&lt;br /&gt;
        Read the next BYTE as the RunCount&lt;br /&gt;
        Repeat the value FFh RunCount times&lt;br /&gt;
    If the Most Significant Bit is OFF&lt;br /&gt;
        If the 7 LSB are not 0&lt;br /&gt;
            The RunCount is the 7 least significant bits&lt;br /&gt;
            The next RunCount BYTEs are read literally&lt;br /&gt;
        If the 7 LSB are 0&lt;br /&gt;
            Read the next BYTE as the RunCount&lt;br /&gt;
            Repeat the previous scan line RunCount times&lt;br /&gt;
&lt;br /&gt;
Encapsulated PostScript (EPS) data may be included in a WPG file by using the PostScript Data Type 1 (11h) record or the PostScript Data Type 2 (1Bh) record. The PostScript Data Type 1 record contains a set of output commands needed to print the EPS code included in the WPG file on a PostScript printer. The structure for the PostScript Data Type 1 record is as follows:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _PsDataType1&lt;br /&gt;
 {&lt;br /&gt;
  WORD  BbLowerLeftX;   /* Lower left X coordinate of image  */&lt;br /&gt;
  WORD  BbLowerLeftY;   /* Lower left Y coordinate of image  */&lt;br /&gt;
  WORD  BbUpperRightX;  /* Upper right X coordinate of image */&lt;br /&gt;
  WORD  BbUpperRightY;  /* Upper right Y coordinate of image */&lt;br /&gt;
 } PSTYPE1REC;&lt;br /&gt;
&lt;br /&gt;
The four fields in this record contain the bounding-box values of the PostScript image in points. These are the values found in the %%BoundingBox field in the EPS header. The EPS data immediately follows this record. The PostScript Data Type 2 record is used to store one or more EPS images. If the EPS data also contains a TIFF, PICT, WMF, or EPSI image, as is found in a Display PostScript file, this data is converted to a Bitmap Type 2 record that follows the PostScript Data Type 2 record.&lt;br /&gt;
&lt;br /&gt;
The structure for the PostScript Data Type 2 record is shown below:&lt;br /&gt;
&lt;br /&gt;
 typedef struct _PsDataType2&lt;br /&gt;
 {&lt;br /&gt;
  DWORD RecordLength;       /* Length of the following record */&lt;br /&gt;
  WORD  RotAngle;           /* Angle of roation of image */&lt;br /&gt;
  WORD  LowerLeftX;         /* Lower-left X coordinate of image */&lt;br /&gt;
  WORD  LowerLeftY;         /* Lower-left Y coordinate of image */&lt;br /&gt;
  WORD  UpperRightX;        /* Upper-right X coordinate of image */&lt;br /&gt;
  WORD  UpperRightY;        /* Upper-right Y coordinate of image */&lt;br /&gt;
  BYTE  FileName[40];       /* File name of original EPSF file */&lt;br /&gt;
  WORD  BbLowerLeftX;       /* Lower-left X coordinate of bounding box */&lt;br /&gt;
  WORD  BbLowerLeftY;       /* Lower-left Y coordinate of bounding box */&lt;br /&gt;
  WORD  BbUpperRightX;      /* Upper-right X coordinate of bounding box */&lt;br /&gt;
  WORD  BbUpperRightY;      /* Upper-right Y coordinate of bounding box */&lt;br /&gt;
 } PSTYPE2REC;&lt;br /&gt;
&lt;br /&gt;
RecordLength indicates the number of bytes occuring in the Bitmap Type 2 record following the EPS data. If the EPS data does not have an associated Bitmap Type 2 record, then the value of this field is 0.&lt;br /&gt;
&lt;br /&gt;
The RotAngle, LowerLeftX, LowerLeftY, UpperRightX, and UpperRightY fields have the same meaning as in the Bitmap Type 2 (14h) record.&lt;br /&gt;
&lt;br /&gt;
FileName contains the name of the original EPSF file from which this EPSF code was derived.&lt;br /&gt;
&lt;br /&gt;
The BbLowerLeftX, BbLowerLeftY, BbUpperRightX, and BbUpperRightY fields are the same as in the PostScript Data Type 1 (11h) record.&lt;br /&gt;
&lt;br /&gt;
The EPSF code immediately follows this record. The PostScript Data Type 2 record found in WordPerfect 5.1 and DrawPerfect supersedes the PostScript Data Type 1 record found only in WordPerfect 5.0 and DrawPerfect 1.0. You should always use the Type 2 record rather than the Type 1 when creating new WPG files.&lt;br /&gt;
&lt;br /&gt;
The last record in every WPG file is the End of WPG Data (10h) record. This record has a NULL body; it merely marks the end of the WPG record stream. &lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=DPX_/_Cineon&amp;diff=7043</id>
		<title>DPX / Cineon</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=DPX_/_Cineon&amp;diff=7043"/>
		<updated>2007-02-20T03:41:00Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''DPX''', the short form of '''Digital Picture Exchange''', is a common file format for digital film work and is an ANSI/SMPTE standard (268M-2003).   The file format primarily represents the Optical density of each color channel of a scanned negative in a 10-bit log format where the Gamma correction of the original camera negative is preserved as taken by a film scanner. &lt;br /&gt;
DPX provides a great deal of flexibility in storing color and other information for exchange between production facilities.  Multiple forms of packing and alignment are possible.&lt;br /&gt;
&lt;br /&gt;
The DPX file format is derived from the output file format of the Kodak Cineon film scanner, and has been published by SMPTE as ANSI/SMPTE 268M-2003 (originally was version 1 268M-1994).&lt;br /&gt;
&lt;br /&gt;
== Availability of the Official DPX Standard ==&lt;br /&gt;
&lt;br /&gt;
'''Availability in Single Copy:'''&lt;br /&gt;
&lt;br /&gt;
SMPTE has the DPX standard 268M-2003,  indexed  [http://www.smpte.org/smpte_store/standards/index.cfm?scope=0&amp;amp;stdtype=smpte&amp;amp;CurrentPage=11 on page 11] of [http://www.smpte.org/smpte_store/standards/index.cfm?stdtype=smpte&amp;amp;scope=0 their standards index] (April, 2005) &lt;br /&gt;
&lt;br /&gt;
GraphicsMagick has implemented the format, info available [http://www.graphicsmagick.org/www/motion-picture.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=WPG&amp;diff=7020</id>
		<title>WPG</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=WPG&amp;diff=7020"/>
		<updated>2007-02-18T02:51:57Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Usage&lt;br /&gt;
Used for storage of document and image data.&lt;br /&gt;
&lt;br /&gt;
Comments&lt;br /&gt;
WPG is supported by other applications mainly for compatibility, due to the widespread distribution of WordPerfect for MS-DOS.&lt;br /&gt;
&lt;br /&gt;
The WordPerfect Graphics Metafile (WPG) file format is a creation of WordPerfect Corporation (WPC) specifically for use with its line of software products. WPG image files are likely to be found in any environment that is supported by WPC products, including MS-DOS, UNIX, and the Apple Macintosh.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
File Details&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
WPG files are capable of storing both bitmap and vector data, which may contain up to 256 individual colors chosen from a palette of more than one million total colors. It is also possible to store Encapsulated PostScript (EPS) code in a WPG file.&lt;br /&gt;
&lt;br /&gt;
The particular version described in this article is the WordPerfect Graphic file format as created by the WPC products WordPerfect 5.x and DrawPerfect 1.x.&lt;br /&gt;
&lt;br /&gt;
A WPG-format file created using WordPerfect 5.0 can store either bitmap or vector image data, but not both at once. WPG files created under WordPerfect 5.1 and later can store both bitmap and vector image data in the same file. Unfortunately, there is no way to tell whether a WPG file contains both bitmap and vector data by reading the header. The actual record data from the body of the file must be read and interpreted.&lt;br /&gt;
&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
In WPC terminology, a WordPerfect Graphics Metafile contains a prefix area (the header) and a record area (the graphics data). All data in the metafile is written using the big-endian byte order.&lt;br /&gt;
File Details&lt;br /&gt;
&lt;br /&gt;
This section contains information about the prefix and record areas of a WordPerfect Graphics Metafile.&lt;br /&gt;
Prefix&lt;br /&gt;
&lt;br /&gt;
The prefix is 16 bytes in length and has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _WordPerfectGraphic&lt;br /&gt;
{&lt;br /&gt;
  BYTE  FileId[4];    /* File Id Code (always FFh 57h 50h 43h) */&lt;br /&gt;
  DWORD DataOffset;   /* Stat of data in the WPG file (always 10h)*/&lt;br /&gt;
  BYTE  ProductType;  /* Product Code (always 1) */&lt;br /&gt;
  BYTE  FileType;     /* WPC File Code (always 16h) */&lt;br /&gt;
  BYTE  MajorVersion; /* Major Version Code (always 1) */&lt;br /&gt;
  BYTE  MinorVersion; /* Minor Version Code (always 0) */&lt;br /&gt;
  WORD  EncryptionKey;/* Password Checksum (0 = not encrypted) */&lt;br /&gt;
  WORD  Reserved;     /* Reserved field (always 0) */&lt;br /&gt;
} WPGHEAD;&lt;br /&gt;
&lt;br /&gt;
FileId values are four contiguous bytes that contain the standard WPC File ID code. All WPC files starting with those created by WordPerfect 5.0 begin with this code. The values for these fields, in order, are FFh, 57h, 50h, and 43h.&lt;br /&gt;
&lt;br /&gt;
DataOffset contains an offset value pointing to the start of the record data in the WordPerfect Graphics Metafile. Because the record data always immediately follows the prefix, and the prefix is always 16 bytes in length, this value is always 10h.&lt;br /&gt;
&lt;br /&gt;
ProductType identifies the WPC software product that created the WPG file. This field always contains the value 01h, indicating that the file was created by the WordPerfect word processor. This value is always the same, even if the WPG file was created by a third-party software application.&lt;br /&gt;
&lt;br /&gt;
FileType identifies the type of data the file contains. For WPG files, the value of this field is always 16h.&lt;br /&gt;
&lt;br /&gt;
MajorVersion and MinorVersion contain the internal version number of the product for which the WPG file was created (which may not match the published, external version number of the product). For all WPG files, the MajorVersion field always contains a value of 01h, and the MinorVersion field always contains a value of 00h.&lt;br /&gt;
&lt;br /&gt;
EncryptionKey normally contains a value of 00h if the file is not encrypted. If the value of this field is non-zero, then the value is used as the checksum of the password and is used to decrypt the file. In the current version, WPG files are never encrypted and therefore the value of this field is always 00h.&lt;br /&gt;
&lt;br /&gt;
Reserved is not currently used and always contains a value of 00h.&lt;br /&gt;
Record Area&lt;br /&gt;
&lt;br /&gt;
Following the prefix in a WordPerfect Graphics Metafile is the record area. This area contains a sequence of objects and their attributes; this information is used to render the image. Any colormaps, bitmaps, and sections of PostScript code are also considered objects within the WPG file record area.&lt;br /&gt;
Record prefix&lt;br /&gt;
&lt;br /&gt;
Each record begins with a record prefix (a header in almost any other format). The record prefix may be two, four, or six bytes in length depending on the type of record it precedes. Here are the three possible record prefix formats:&lt;br /&gt;
&lt;br /&gt;
/* Two-byte prefix */&lt;br /&gt;
typedef struct _TwoByteRecPrefix&lt;br /&gt;
{&lt;br /&gt;
  BYTE  RecordType;     /* The Record Type identifier */&lt;br /&gt;
  BYTE  RecordLength;   /* The length of the record in bytes (0-FEh)*/&lt;br /&gt;
} RECPREFIX2BYTE;&lt;br /&gt;
&lt;br /&gt;
/* Four-byte prefix */&lt;br /&gt;
typedef struct _FourByteRecPrefix&lt;br /&gt;
{&lt;br /&gt;
  BYTE  RecordType;     /* The Record Type identifier */&lt;br /&gt;
  BYTE  SizeIndicator;  /* WORD or DWORD length follows (always FFh)*/&lt;br /&gt;
  WORD  RecordLength;   /* The length of the record in bytes */&lt;br /&gt;
} RECPREFIX4BYTE;&lt;br /&gt;
&lt;br /&gt;
/* Six-byte prefix */&lt;br /&gt;
typedef struct _SixByteRecPrefix&lt;br /&gt;
{&lt;br /&gt;
  BYTE  RecordType;     /* The Record Type identifier */&lt;br /&gt;
  BYTE  SizeIndicator;  /* WORD or DWORD length follows (always FFh)*/&lt;br /&gt;
  DWORD RecordLength;   /* The length of the record in bytes */&lt;br /&gt;
} RECPREFIX6BYTE;&lt;br /&gt;
&lt;br /&gt;
Record type&lt;br /&gt;
&lt;br /&gt;
RecordType, the first field of each record, contains a value that identifies the type of data stored in the record as follows:&lt;br /&gt;
&lt;br /&gt;
Record Type&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Record Description&lt;br /&gt;
&lt;br /&gt;
01h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fill attributes&lt;br /&gt;
&lt;br /&gt;
02h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line attributes&lt;br /&gt;
&lt;br /&gt;
03h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Marker attributes&lt;br /&gt;
&lt;br /&gt;
04h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Polymarker&lt;br /&gt;
&lt;br /&gt;
05h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line&lt;br /&gt;
&lt;br /&gt;
06h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Polyline&lt;br /&gt;
&lt;br /&gt;
07h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rectangle&lt;br /&gt;
&lt;br /&gt;
08h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Polygon&lt;br /&gt;
&lt;br /&gt;
09h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Ellipse&lt;br /&gt;
&lt;br /&gt;
0Ah&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
0Bh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Bitmap (Type 1)&lt;br /&gt;
&lt;br /&gt;
0Ch&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text (Type 1)&lt;br /&gt;
&lt;br /&gt;
0Dh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text attributes&lt;br /&gt;
&lt;br /&gt;
0Eh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Color map&lt;br /&gt;
&lt;br /&gt;
0Fh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start of WPG data (Type 1)&lt;br /&gt;
&lt;br /&gt;
10h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
End of WPG data&lt;br /&gt;
&lt;br /&gt;
11h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
PostScript data follows (Type 1)&lt;br /&gt;
&lt;br /&gt;
12h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Output attributes&lt;br /&gt;
&lt;br /&gt;
13h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Curved polyline&lt;br /&gt;
&lt;br /&gt;
14h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Bitmap (Type 2)&lt;br /&gt;
&lt;br /&gt;
15h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start figure&lt;br /&gt;
&lt;br /&gt;
16h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start chart&lt;br /&gt;
&lt;br /&gt;
17h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
PlanPerfect data&lt;br /&gt;
&lt;br /&gt;
18h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text (Type 2)&lt;br /&gt;
&lt;br /&gt;
19h&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start of WPG data (Type 2)&lt;br /&gt;
&lt;br /&gt;
1Ah&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Graphics text (Type 3)&lt;br /&gt;
&lt;br /&gt;
1Bh&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
PostScript data follows (Type 2)&lt;br /&gt;
&lt;br /&gt;
The following is a listing of the record types, their formats, and the flags associated with them. For more information, please consult the Wordperfect documentation.&lt;br /&gt;
Fill Attributes&lt;br /&gt;
&lt;br /&gt;
BYTE 0&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Hollow&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Solid&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Finely spaced 45-degree lines&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium spaced 45-degree lines&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarsely spaced 45-degree lines&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine 45-degree hatching&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium 45-degree hatching&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse 45-degree hatching&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine vertical lines&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium vertical lines&lt;br /&gt;
&lt;br /&gt;
10&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse vertical lines&lt;br /&gt;
&lt;br /&gt;
11&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 1 (least dense)&lt;br /&gt;
&lt;br /&gt;
12&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 2&lt;br /&gt;
&lt;br /&gt;
11&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 3&lt;br /&gt;
&lt;br /&gt;
13&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 4&lt;br /&gt;
&lt;br /&gt;
14&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 5&lt;br /&gt;
&lt;br /&gt;
15&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 6&lt;br /&gt;
&lt;br /&gt;
16&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots density 7 (densest)&lt;br /&gt;
&lt;br /&gt;
18&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots (medium)&lt;br /&gt;
&lt;br /&gt;
19&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots (coarse)&lt;br /&gt;
&lt;br /&gt;
20&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine horizontal&lt;br /&gt;
&lt;br /&gt;
21&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium horizontal&lt;br /&gt;
&lt;br /&gt;
22&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse horizontal&lt;br /&gt;
&lt;br /&gt;
23&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine 90-degree cross-hatching&lt;br /&gt;
&lt;br /&gt;
24&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium 90-degree cross-hatching&lt;br /&gt;
&lt;br /&gt;
25&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse 90-degree cross-hatching&lt;br /&gt;
&lt;br /&gt;
26&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fine 45-degree lines&lt;br /&gt;
&lt;br /&gt;
27&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Medium 45-degree lines&lt;br /&gt;
&lt;br /&gt;
28&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse 45-degree lines&lt;br /&gt;
&lt;br /&gt;
29&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Brick pattern (horizontal)&lt;br /&gt;
&lt;br /&gt;
30&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Brick pattern (vertical)&lt;br /&gt;
&lt;br /&gt;
31&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
NA&lt;br /&gt;
&lt;br /&gt;
32&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Interweaving&lt;br /&gt;
&lt;br /&gt;
33&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
NA&lt;br /&gt;
&lt;br /&gt;
34&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
NA&lt;br /&gt;
&lt;br /&gt;
35&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Tile pattern&lt;br /&gt;
&lt;br /&gt;
36&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Coarse lines (thick)&lt;br /&gt;
&lt;br /&gt;
37&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Alternating dark and light squares&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Fill-color palette index (0-ffh)&lt;br /&gt;
&lt;br /&gt;
Line Attributes&lt;br /&gt;
&lt;br /&gt;
BYTE 0&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Solid&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash 1 (long)&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash-dot&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash 2 (medium)&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash-dot-dot&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dash 3 (short)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Line width (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
Marker Attributes&lt;br /&gt;
&lt;br /&gt;
BYTE 0&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Dots&lt;br /&gt;
&lt;br /&gt;
2&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Plus sign&lt;br /&gt;
&lt;br /&gt;
3&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Star&lt;br /&gt;
&lt;br /&gt;
4&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Circle&lt;br /&gt;
&lt;br /&gt;
5&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Square&lt;br /&gt;
&lt;br /&gt;
6&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Triangle&lt;br /&gt;
&lt;br /&gt;
7&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Inverted triangle&lt;br /&gt;
&lt;br /&gt;
8&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Diamond&lt;br /&gt;
&lt;br /&gt;
9&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
45-degree cross&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Marker color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Marker height (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
Polymarker&lt;br /&gt;
&lt;br /&gt;
The first area, two bytes in length, holds the number of points. This is followed by a list of WORD coordinate pairs denoting the position of the actual points in arbitrary units.&lt;br /&gt;
Line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of start of line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of start of line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of end of line&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of end of line&lt;br /&gt;
&lt;br /&gt;
These are all in arbitrary units.&lt;br /&gt;
Polyline&lt;br /&gt;
&lt;br /&gt;
The first area, two bytes in length, holds the number of points. This is followed by a list of WORD coordinate pairs denoting the position of the actual points in arbitrary units.&lt;br /&gt;
Rectangle&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X of lower left of rectangle&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y of lower left of rectangle&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height&lt;br /&gt;
&lt;br /&gt;
These are all in arbitrary units.&lt;br /&gt;
Polygon&lt;br /&gt;
&lt;br /&gt;
The first area, two bytes in length, holds the number of vertices. This is followed by a list of WORD coordinate pairs denoting the position of the actual vertices in arbitrary units.&lt;br /&gt;
Ellipse&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of center&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of center&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X radius&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y radius&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle measured from the x axis&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start of arc (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
End of arc (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Flags: bit 0 connect ends of arc to center, bit 1 connect to each other&lt;br /&gt;
&lt;br /&gt;
Bitmap Type 1&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Bits-per-pixel (1,2,4,8)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X-resolution of source (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y-resolution of source (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
This is followed by the bitmap data in BYTE format. Note that this may be RLE compressed.&lt;br /&gt;
Graphic Text Type 1&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Text length in bytes&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of text position&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of text position&lt;br /&gt;
&lt;br /&gt;
This is followed by the text string in BYTE format.&lt;br /&gt;
Graphics Text Attributes&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Font character width (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Font character height (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Font type--e.g., 0df0 Courier, 1150 Helvetica, 1950 Times&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Reserved&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Alignment, vertical (0 left, 1 center, 2 right)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Alignment, horizontal (0 base, 1 center, 2 cap, 3 bottom, 4 top)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation (degrees from horizontal)&lt;br /&gt;
&lt;br /&gt;
Colormap&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Start color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Number of colors&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Red value of first color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Green value of first color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Blue value of first color&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Red value of last color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Green value of last color&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Blue value of last color&lt;br /&gt;
&lt;br /&gt;
Start of WPG Data&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Version number&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Flags (bit 0 PostScript, maybe bitmap, bit 1 PostScript, no bitmap&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width of image (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height of image (arbitrary units)&lt;br /&gt;
&lt;br /&gt;
End of WPG Data&lt;br /&gt;
&lt;br /&gt;
This record has no data associated with it. It is used to signal the end of a data section in the file and acts as an end-of-file marker.&lt;br /&gt;
PostScript Data Follows&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Actual PostScript data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Output Attributes (WordPerfect 5.0 only)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Background color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Foreground color (0-ffh)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of lower left of clipping window&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of lower left of clipping window&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Clip window width&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Clip window height&lt;br /&gt;
&lt;br /&gt;
Size and position values are in arbitrary units.&lt;br /&gt;
Curved Polyline (WordPerfect 5.1 and later)&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Size of equivalent data in pre-5.1 files&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Number of points&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of first point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of first point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of first control point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of first control point&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
.&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of last point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of last point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of last control point&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of last control point&lt;br /&gt;
&lt;br /&gt;
Bitmap Type 2 (WordPerfect 5.1 and later)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle from horizontal (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Width (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Height (pixels)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Pixel depth (bits)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Horizontal resolution (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Vertical resolution (pixels/inch)&lt;br /&gt;
&lt;br /&gt;
This is followed by the actual bitmap data, which is RLE compressed, although there appear to be some (possibly illegal) variants produced by third-party programs which are not.&lt;br /&gt;
Start Figure&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of object data&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle from horizontal (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of upper right&lt;br /&gt;
&lt;br /&gt;
This is followed by the figure data.&lt;br /&gt;
Start Chart&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of chart data in file&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value lower left&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value upper right&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value upper right&lt;br /&gt;
&lt;br /&gt;
This is followed by the actual chart data.&lt;br /&gt;
PlanPerfect Data&lt;br /&gt;
&lt;br /&gt;
This is data associated with WordPerfect Corporation's PlanPerfect application. Please contact WordPerfect for more information.&lt;br /&gt;
Graphics Text Type 2 (WordPerfect version 5.1 and later)&lt;br /&gt;
&lt;br /&gt;
DWORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Size of equivalent data written by version prior to 5.1&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Rotation angle from horizontal (degrees)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of text (characters)&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of text start&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of text start&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X value of text end&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y value of text end&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
X scale factor&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Y scale factor&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Type (0 window, 1 line, 2 bullet chart, 3 simple chart, 4 free-format chart)&lt;br /&gt;
&lt;br /&gt;
This is followed by the string data.&lt;br /&gt;
Start of WPG Data Type 2&lt;br /&gt;
&lt;br /&gt;
BYTE&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&lt;br /&gt;
WORD&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
Length of data in file&lt;br /&gt;
&lt;br /&gt;
This is followed by the actual data.&lt;br /&gt;
RecordLength&lt;br /&gt;
&lt;br /&gt;
RecordLength, the second field of each record, may be a BYTE, WORD, or DWORD in size, depending upon the value stored in the first BYTE of this field (SizeIndicator above). Because it is possible for the same RecordType to have a different size each time it appears in the same WPG file, each record cannot be assigned a RecordType field of a fixed size. You must therefore determine the size of the RecordLength field when you read the record prefix.&lt;br /&gt;
&lt;br /&gt;
If the BYTE value read after the RecordType field is in the range of 00h to FEh, the RecordLength field is a BYTE in size, and this value is used as the number of bytes in the record. If the BYTE is the value FFh, then the RecordLength field is either a WORD or a DWORD in size.&lt;br /&gt;
&lt;br /&gt;
The next WORD of the prefix is then read. If the high bit of this WORD is 0, then this value is the length of the record. If the high bit is 1, then this value is the upper WORD value of a DWORD length value. The next WORD is read and is used as the lower WORD value in the DWORD. This DWORD value is then the length of the record. The following code should help to clarify this logic:&lt;br /&gt;
&lt;br /&gt;
BYTE  RecordType;&lt;br /&gt;
DWORD RecordLength;&lt;br /&gt;
FILE *fp;&lt;br /&gt;
RecordType = GetByte(fp);           /* Read the RecordType */&lt;br /&gt;
RecordLength = GetByte(fp);         /* Read the RecordLength */&lt;br /&gt;
if (RecordLength == 0xFF)           /* Not a BYTE value */&lt;br /&gt;
{&lt;br /&gt;
  RecordLength = GetWord(fp);       /* Read the next WORD value */&lt;br /&gt;
  if(RecordLength &amp;amp; 0x8000)     /* Not a WORD value */&lt;br /&gt;
  {&lt;br /&gt;
    RecordLength &amp;lt;&amp;lt;= 16;      /* Shift value into the high WORD */&lt;br /&gt;
    RecordLength += GetWord(fp);    /* Read the low WORD value */&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Example Records&lt;br /&gt;
&lt;br /&gt;
The following is a description of several of the records found in the WPG format. For a complete listing of all records and values, refer to the WordPerfect Developer's Toolkit.&lt;br /&gt;
&lt;br /&gt;
The first record of a WPG file is always the Start WPG Data (0Fh) record. This record contains information on the size of the image and the version number of the WPG file and has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _StartWpgRecord&lt;br /&gt;
{&lt;br /&gt;
  BYTE 	Version;        /* WPG Version Flags (always 01h) */&lt;br /&gt;
  BYTE 	WpgFlags;       /* Bit flags */&lt;br /&gt;
  WORD 	Width;          /* Width of image in WP Units */&lt;br /&gt;
  WORD 	Height;         /* Height of image in WP Units */&lt;br /&gt;
} STARTWPGREC;&lt;br /&gt;
&lt;br /&gt;
Version indicates the WPG file version. This value is currently defined to be 01h.&lt;br /&gt;
&lt;br /&gt;
The eight bits in the WpgFlags field are used as flag values. If Bit 0 is set to 0, then there is no PostScript code included in this WPG file. If Bit 0 is set to 1, then PostScipt code is included in this file. Bits 1 through 7 are reserved and always set to 0.&lt;br /&gt;
&lt;br /&gt;
Width and Height contain the size of the image in WP Units (WPU), each of which is equal to 1/1200th of an inch.&lt;br /&gt;
&lt;br /&gt;
A ColorMapRecord (0Eh) normally follows the StartWpgRecord, unless the image is black and white. If no ColorMapRecord is present, then the default colormap is used instead. There is only one ColorMapRecord per WPG file, regardless of how many bitmap or vector objects the file contains. The current WPG format does not provide a way to assign separate colormaps to specific vector objects and bitmaps.&lt;br /&gt;
&lt;br /&gt;
All images stored in a WPG file, both bitmap and vector, use index values into the colormap to define their colors. This record may define an entire color map unique to this image, or it may define only a smaller colormap used to overlay a portion of the default colormap. To avoid problems with WPC products, the first 16 colors in the colormap should never be changed from their default values. The ColorMapRecord has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _ColorMapRecord&lt;br /&gt;
{&lt;br /&gt;
  WORD  StartIndex;     /* The starting index of this color map */&lt;br /&gt;
  WORD  NumberOfEntries;/* The number of entries in this color map*/&lt;br /&gt;
  BYTE  *ColorMap[][3]; /* Color map triples */&lt;br /&gt;
} COLORMAPREC;&lt;br /&gt;
&lt;br /&gt;
StartIndex indicates the starting color index number of this map.&lt;br /&gt;
&lt;br /&gt;
NumberOfEntries indicates the number of contiguous entries in the colormap from the starting index. If entries 178 though 244 in the default colormap were being replaced by this colormap, the value of StartIndex would be 178, and the value of NumberOfEntries would be 66. If the entire colormap were being replaced, the values of these fields would be 0 and 256 respectively.&lt;br /&gt;
&lt;br /&gt;
These two fields are followed by a sequence of three-byte triples, which hold the actual colormap data. The number of triples is equal to the value stored in the NumberOfEntries field. The number of bytes in this field is calculated by multiplying the value of the NumberOfEntries field by 3. The default colormap for WPG files is the same as the IBM VGA standard color table defined in the PS/2 Display Adapter manual.&lt;br /&gt;
&lt;br /&gt;
The VGA colormap structure is also shown in Chapter 2, in the section called &amp;quot;Examples of Palettes.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This colormap contains 256 color entries, each with a 1-byte red, green, and blue color value for a total of 768 map elements. The first 16 colors are those of the IBM EGA color table. Colors 17 through 32 are 16 gray-scale shades. The remaining 224 colors are a palette of 24 individual colors, each with three different intensity levels and three different saturation levels. The WPG color map uses eight bits for red and six bits each for green and blue.&lt;br /&gt;
&lt;br /&gt;
When displaying WPG images using a display adapter, such as the VGA, with fewer bits per primary color, the color values are truncated starting with the least significant bits. For a VGA adapter that has only 6 bits for red, all 8-bit red values in the color table are shifted to the right twice before the value is used. The green and blue values are not changed.&lt;br /&gt;
&lt;br /&gt;
As previously mentioned, a WPG file created with WordPerfect 5.0 can store either bitmap or vector image data, but not both. This is due to a limitation of the Bitmap (0Bh) record structure. This record is now considered obsolete and should not be used when you create new WPG files. The structure of this record is as follows:&lt;br /&gt;
&lt;br /&gt;
typedef struct _BitmapType1&lt;br /&gt;
{&lt;br /&gt;
  WORD  Width;          /* Width of image in pixels */&lt;br /&gt;
  WORD  Height;         /* Height of image in pixels */&lt;br /&gt;
  WORD  Depth;          /* Number of bits per pixel */&lt;br /&gt;
  WORD  HorzRes;        /* Horizontal resolution of image */&lt;br /&gt;
  WORD  VertRes;        /* Vertical resolution of image */&lt;br /&gt;
} BITMAP1REC;&lt;br /&gt;
&lt;br /&gt;
Width and Height describe the size of the bitmap in pixels.&lt;br /&gt;
&lt;br /&gt;
Depth contains the number of bits per pixel. The possible values of this field are 1, 2, 4, or 8 for 2-, 4-, 16-, and 256-color images.&lt;br /&gt;
&lt;br /&gt;
HorzRes and VertRes are the horizontal and vertical resolution of the original bitmap in pixels per inch. These values can also describe the minimum resolution of the screen required to display the image.&lt;br /&gt;
&lt;br /&gt;
The bitmap data follows this record structure. The Bitmap Type 1(0Bh) record was superseded by the Bitmap Type 2 (14h) record introduced with WordPerfect 5.1. This new record added five fields not found in the Bitmap Type 1 record. These fields contain information on the position of the bitmap on the output device. If you use a Bitmap Type 2 record, it is also possible to store multiple bitmaps in a single WPG file.&lt;br /&gt;
&lt;br /&gt;
The structure of the Bitmap Type 2 record is shown below:&lt;br /&gt;
&lt;br /&gt;
typedef struct _BitmapType2&lt;br /&gt;
{&lt;br /&gt;
  WORD  RotAngle;       /* Rotation angle of bitmap (0-359) */&lt;br /&gt;
  WORD  LowerLeftX;     /* Lower-left X coordinate of image */&lt;br /&gt;
  WORD  LowerLeftY;     /* Lower-left Y coordinate of image */&lt;br /&gt;
  WORD  UpperRightX;    /* Upper-right X coordinate of image */&lt;br /&gt;
  WORD  UpperRightY;    /* Upper-right Y coordinate of image */&lt;br /&gt;
  WORD  Width;          /* Width of image in pixels */&lt;br /&gt;
  WORD  Height;         /* Height of image in pixels */&lt;br /&gt;
  WORD  Depth;          /* Number of bits per pixel */&lt;br /&gt;
  WORD  HorzRes;        /* Horizontal resolution of image */&lt;br /&gt;
  WORD  VertRes;        /* Vertical resolution of image */&lt;br /&gt;
} BITMAP2REC;&lt;br /&gt;
&lt;br /&gt;
RotAngle is the rotation angle of the bitmap in degrees. This value may be in the range of 0 to 359, with 0 indicating the image is not rotated.&lt;br /&gt;
&lt;br /&gt;
LowerLeftX and LowerLeftY describe the location of the lower-left corner of the image in WPUs.&lt;br /&gt;
&lt;br /&gt;
UpperRightX and UpperRightY describe the location of the upper-right corner of the image in WPUs. Note that the origin point (0,0) of all WPG images is the lower left-hand corner of the output device.&lt;br /&gt;
&lt;br /&gt;
The remaining five fields, Width, Height, Depth, HorzRes, and VertRes, are identical to those in the Bitmap Type 1 record.&lt;br /&gt;
&lt;br /&gt;
It is possible to store two or more images in a WPG file by using multiple Bitmap records. The coordinate information found in a Bitmap Type 2 record will allow the images to be positioned on the output device so they do not overlap. The size of a bitmap in bytes may be determined by multiplying the Height, Width, and Depth fields and then dividing the product by 8:&lt;br /&gt;
&lt;br /&gt;
SizeInBytes = (Height * Width * Depth) / 8;&lt;br /&gt;
&lt;br /&gt;
Bitmap data is always stored in a WPG file using a byte-wise run-length encoding (RLE) algorithm. (See Chapter 9, Data Compression, for more information on run-length encoding algorithms.) Each scan line is encoded separately.&lt;br /&gt;
&lt;br /&gt;
There are four possible types of RLE packets in the WPG algorithm:&lt;br /&gt;
&lt;br /&gt;
    * Encoded packet&lt;br /&gt;
&lt;br /&gt;
    * Literal packet&lt;br /&gt;
&lt;br /&gt;
    * All-bits-on packet&lt;br /&gt;
&lt;br /&gt;
    * Repeat scan-line packet&lt;br /&gt;
&lt;br /&gt;
An encoded packet may encode a run of from 1 to 127 bytes in length. An encoded packet always has the most significant bit (MSB) as 1 and the seven least significant bits (LSBs) are a non-zero value. The length of the run is the value of the seven LSBs. If the MSB of this byte is 1, but the seven LSBs are set to 0, then the next byte is read as the run count and the byte value FFh is repeated &amp;quot;run count&amp;quot; times. If the MSB of the byte read is 0, and the seven LSBs are a non-zero value, then this is a literal run. The seven LSBs hold the run-count value and the next &amp;quot;run count&amp;quot; bytes are read literally from the encoded data stream. If the run count is 0, then the next byte is read as the run count and the previous scan line is repeated &amp;quot;run count&amp;quot; times.&lt;br /&gt;
&lt;br /&gt;
The pseudocode for the WPG RLE algorithm is shown below:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Read a BYTE&lt;br /&gt;
If the Most Significant Bit is ON&lt;br /&gt;
    If the 7 LSB are not 0&lt;br /&gt;
        The RunCount is the 7 least significant bits&lt;br /&gt;
        Read the next BYTE and repeat it RunCount times&lt;br /&gt;
    If the 7 LSB are 0&lt;br /&gt;
        Read the next BYTE as the RunCount&lt;br /&gt;
        Repeat the value FFh RunCount times&lt;br /&gt;
    If the Most Significant Bit is OFF&lt;br /&gt;
        If the 7 LSB are not 0&lt;br /&gt;
            The RunCount is the 7 least significant bits&lt;br /&gt;
            The next RunCount BYTEs are read literally&lt;br /&gt;
        If the 7 LSB are 0&lt;br /&gt;
            Read the next BYTE as the RunCount&lt;br /&gt;
            Repeat the previous scan line RunCount times&lt;br /&gt;
&lt;br /&gt;
Encapsulated PostScript (EPS) data may be included in a WPG file by using the PostScript Data Type 1 (11h) record or the PostScript Data Type 2 (1Bh) record. The PostScript Data Type 1 record contains a set of output commands needed to print the EPS code included in the WPG file on a PostScript printer. The structure for the PostScript Data Type 1 record is as follows:&lt;br /&gt;
&lt;br /&gt;
typedef struct _PsDataType1&lt;br /&gt;
{&lt;br /&gt;
  WORD  BbLowerLeftX;   /* Lower left X coordinate of image  */&lt;br /&gt;
  WORD  BbLowerLeftY;   /* Lower left Y coordinate of image  */&lt;br /&gt;
  WORD  BbUpperRightX;  /* Upper right X coordinate of image */&lt;br /&gt;
  WORD  BbUpperRightY;  /* Upper right Y coordinate of image */&lt;br /&gt;
} PSTYPE1REC;&lt;br /&gt;
&lt;br /&gt;
The four fields in this record contain the bounding-box values of the PostScript image in points. These are the values found in the %%BoundingBox field in the EPS header. The EPS data immediately follows this record. The PostScript Data Type 2 record is used to store one or more EPS images. If the EPS data also contains a TIFF, PICT, WMF, or EPSI image, as is found in a Display PostScript file, this data is converted to a Bitmap Type 2 record that follows the PostScript Data Type 2 record.&lt;br /&gt;
&lt;br /&gt;
The structure for the PostScript Data Type 2 record is shown below:&lt;br /&gt;
&lt;br /&gt;
typedef struct _PsDataType2&lt;br /&gt;
{&lt;br /&gt;
  DWORD RecordLength;       /* Length of the following record */&lt;br /&gt;
  WORD  RotAngle;           /* Angle of roation of image */&lt;br /&gt;
  WORD  LowerLeftX;         /* Lower-left X coordinate of image */&lt;br /&gt;
  WORD  LowerLeftY;         /* Lower-left Y coordinate of image */&lt;br /&gt;
  WORD  UpperRightX;        /* Upper-right X coordinate of image */&lt;br /&gt;
  WORD  UpperRightY;        /* Upper-right Y coordinate of image */&lt;br /&gt;
  BYTE  FileName[40];       /* File name of original EPSF file */&lt;br /&gt;
  WORD  BbLowerLeftX;       /* Lower-left X coordinate of bounding box */&lt;br /&gt;
  WORD  BbLowerLeftY;       /* Lower-left Y coordinate of bounding box */&lt;br /&gt;
  WORD  BbUpperRightX;      /* Upper-right X coordinate of bounding box */&lt;br /&gt;
  WORD  BbUpperRightY;      /* Upper-right Y coordinate of bounding box */&lt;br /&gt;
} PSTYPE2REC;&lt;br /&gt;
&lt;br /&gt;
RecordLength indicates the number of bytes occuring in the Bitmap Type 2 record following the EPS data. If the EPS data does not have an associated Bitmap Type 2 record, then the value of this field is 0.&lt;br /&gt;
&lt;br /&gt;
The RotAngle, LowerLeftX, LowerLeftY, UpperRightX, and UpperRightY fields have the same meaning as in the Bitmap Type 2 (14h) record.&lt;br /&gt;
&lt;br /&gt;
FileName contains the name of the original EPSF file from which this EPSF code was derived.&lt;br /&gt;
&lt;br /&gt;
The BbLowerLeftX, BbLowerLeftY, BbUpperRightX, and BbUpperRightY fields are the same as in the PostScript Data Type 1 (11h) record.&lt;br /&gt;
&lt;br /&gt;
The EPSF code immediately follows this record. The PostScript Data Type 2 record found in WordPerfect 5.1 and DrawPerfect supersedes the PostScript Data Type 1 record found only in WordPerfect 5.0 and DrawPerfect 1.0. You should always use the Type 2 record rather than the Type 1 when creating new WPG files.&lt;br /&gt;
&lt;br /&gt;
The last record in every WPG file is the End of WPG Data (10h) record. This record has a NULL body; it merely marks the end of the WPG record stream. &lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=DPX_/_Cineon&amp;diff=7019</id>
		<title>DPX / Cineon</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=DPX_/_Cineon&amp;diff=7019"/>
		<updated>2007-02-18T02:37:45Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''DPX''', the short form of '''Digital Picture Exchange''', is a common file format for digital film work and is an ANSI/SMPTE standard (268M-2003).   The file format primarily represents the Optical density of each color channel of a scanned negative in a 10-bit log format where the Gamma correction of the original camera negative is preserved as taken by a film scanner. &lt;br /&gt;
DPX provides a great deal of flexibility in storing color and other information for exchange between production facilities.  Multiple forms of packing and alignment are possible.&lt;br /&gt;
&lt;br /&gt;
The DPX file format is derived from the output file format of the Kodak Cineon film scanner, and has been published by SMPTE as ANSI/SMPTE 268M-2003 (originally was version 1 268M-1994).&lt;br /&gt;
&lt;br /&gt;
== Availability of the Official DPX Standard ==&lt;br /&gt;
&lt;br /&gt;
'''Availability in Single Copy:'''&lt;br /&gt;
&lt;br /&gt;
SMPTE has the DPX standard 268M-2003,  indexed  [http://www.smpte.org/smpte_store/standards/index.cfm?scope=0&amp;amp;stdtype=smpte&amp;amp;CurrentPage=11 on page 11] of [http://www.smpte.org/smpte_store/standards/index.cfm?stdtype=smpte&amp;amp;scope=0 their standards index] (April, 2005) &lt;br /&gt;
&lt;br /&gt;
GraphicsMagick has implemented the format, info available [http://www.graphicsmagick.org/www/motion-picture.html]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XBM&amp;diff=7018</id>
		<title>XBM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XBM&amp;diff=7018"/>
		<updated>2007-02-18T02:18:47Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Usage&lt;br /&gt;
Primarily used for the storage of cursor and icon bitmaps for use in the X graphical user interface.&lt;br /&gt;
&lt;br /&gt;
Comments&lt;br /&gt;
XBM is a monochrome bitmap format in which data is stored as a C language data array.&lt;br /&gt;
&lt;br /&gt;
Normally, we think of images as data being stored as binary information in a file. In many cases, however, it is more convenient to represent smaller bitmapped images as collections of ASCII data rather than binary data. If such a small bitmapped image is being used by a software application, such as the cursors and icons found in all graphical user interfaces, the images may be stored as an array of ASCII characters, or even as an array of data values stored in the actual software source code.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
File Details&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
Storing small amounts of image data directly as C language source code is the philosophy behind the XBM (X BitMap) format. Small images that will be compiled into a software program are stored as simple arrays of data values, with one array used per stored image. XBM files are therefore nothing more than C language source files that are read by a compiler, rather than by a graphical display program or bitmap editor, as are most other graphical files.&lt;br /&gt;
&lt;br /&gt;
XBM bitmap data is mostly found in C source header files (with a .h file extension) and in separate XBM bitmap files (with no file extension). Multiple XBM image-data arrays may be stored in a single file, but none of the images may have the same name, or a naming conflict will result.&lt;br /&gt;
&lt;br /&gt;
The XPM (X PixMap) format is similar to XBM. XPM is a cousin of XBM and is capable of storing color bitmap image data and a colormap. XPM is also an ASCII format and is described in the XPM article.&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
XBM files have a height and width, and may define an optional hotspot within the image. The hotspot is used for bitmapped cursors and indicates the absolute position of the cursor on the screen. The hotspot on an arrow cursor is the tip of the arrow, which is usually located at position 0,0 in the bitmap.&lt;br /&gt;
&lt;br /&gt;
In place of the usual image file format header, XBM files have two or four #define statements. The first two #defines specify the height and width of the bitmap in pixels. The second two specify the position of the hotspot within the bitmap, and are not present if no hotspot is defined in the image.&lt;br /&gt;
&lt;br /&gt;
The labels of each #define contain the name of the image. Consider an image that is 8x8 pixels in size, named FOO, with a hotspot at pixel 0,7. This image contains the following #define statements:&lt;br /&gt;
&lt;br /&gt;
#define FOO_width 8&lt;br /&gt;
#define FOO_height 8&lt;br /&gt;
#define FOO_x_hot 0&lt;br /&gt;
#define FOO_y_hot 7&lt;br /&gt;
&lt;br /&gt;
The image data itself is a single line of pixel values stored in a static array. Data representing our FOO image appears as follows:&lt;br /&gt;
&lt;br /&gt;
static unsigned char FOO_bits[] = {&lt;br /&gt;
    0x3E, 0x80, 0x00, 0x7C, 0x00, 0x82, 0x41, 0x00};&lt;br /&gt;
&lt;br /&gt;
Because each pixel is only one bit in size, each byte in the array contains the information for eight pixels, with the first pixel in the bitmap (at position 0,0) represented by the high bit of the first byte in the array. If the image width is not a multiple of eight, the extra bits in the last byte of each row are not used and are ignored.&lt;br /&gt;
&lt;br /&gt;
XBM files are found in two variations: the older X10 format and the newer (as of 1986) X11 format. The only difference between these formats is how the pixel data is packed. The X11 flavor stores pixel data as 8-bit BYTEs. The older X10 flavor stores pixel data as 16-bit WORDs. There are no markers separating the rows of image data in either of these formats, and the size of an XBM array is limited only by the compiler and machine using the bitmap.&lt;br /&gt;
&lt;br /&gt;
The X10 XBM is considered obsolete. Make sure that any X software you write is able to read both the XBM X10 and X11 formats, but when you write data, use only the X11 XBM format.&lt;br /&gt;
File Details&lt;br /&gt;
&lt;br /&gt;
Following is an example of a 16x16 XBM bitmap stored using both its X10 and X11 variations. Note that each array contains exactly the same data, but is stored using different data word types:&lt;br /&gt;
&lt;br /&gt;
/* XBM X10 format */&lt;br /&gt;
#define xlogo16_width 16&lt;br /&gt;
#define xlogo16_height 16&lt;br /&gt;
static unsigned short xlogo16_bits[] = {&lt;br /&gt;
    0x0f80, 0x1e80, 0x3c40, 0x7820, 0x7810, 0xf008, 0xe009, 0xc005,&lt;br /&gt;
    0xc002, 0x4007, 0x200f, 0x201e, 0x101e, 0x083c, 0x0478,&lt;br /&gt;
    0x02f0};&lt;br /&gt;
/* XBM X11 format */&lt;br /&gt;
#define xlogo16_width 16&lt;br /&gt;
#define xlogo16_height 16&lt;br /&gt;
static unsigned char xlogo16_bits[] = {&lt;br /&gt;
    0x0f, 0x80, 0x1e, 0x80, 0x3c, 0x40, 0x78, 0x20, 0x78, 0x10,&lt;br /&gt;
    0xf0, 0x08, 0xe0, 0x09, 0xc0, 0x05, 0xc0, 0x02, 0x40, 0x07,&lt;br /&gt;
    0x20, 0x0f, 0x20, 0x1e, 0x10, 0x1e, 0x08, 0x3c, 0x04, 0x78,&lt;br /&gt;
    0x02, 0xf0};&lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7017</id>
		<title>XWD</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7017"/>
		<updated>2007-02-18T02:17:29Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;XWD is used to store images of captured X window displays.&lt;br /&gt;
&lt;br /&gt;
The XWD (X Window Dump) format is used specifically to store screen dumps created by the X Window System. Under X11, screen dumps are created by the xwd client. Using xwd, the window or background is selected to dump and an XWD file is produced containing an image of the window. If you issue the following command:&lt;br /&gt;
&lt;br /&gt;
% xwd -root &amp;gt; output.xwd&lt;br /&gt;
&lt;br /&gt;
the entire contents of the current display are saved to the file output.xwd. The id of the window to dump may also be specified by using the -id command-line flag on versions of xwd prior to Release 5.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
For Further Information&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
The first version of the X Window System to support window dumps was X10. Only gray-scale and color-mapped dumps were supported, and the bitmapped data was never compressed. The X10 version of XWD contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10WindowDump&lt;br /&gt;
{&lt;br /&gt;
  LONG  HeaderSize;         /* Header size in bytes */&lt;br /&gt;
  LONG  FileVersion;        /* X10 XWD file version (always 06h) */&lt;br /&gt;
  LONG  DisplayType;        /* Display type */&lt;br /&gt;
  LONG  DisplayPlanes;      /* Number of display planes */&lt;br /&gt;
  LONG  PixmapFormat;       /* Pixmap format */&lt;br /&gt;
  LONG  PixmapWidth;        /* Pixmap width */&lt;br /&gt;
  LONG  PixmapHeight;       /* Pixmap height */&lt;br /&gt;
  SHORT WindowWidth;        /* Window width */&lt;br /&gt;
  SHORT WindowHeight;       /* Window height */&lt;br /&gt;
  SHORT WindowX;            /* Window upper left X coordinate */&lt;br /&gt;
  SHORT WindowY;            /* Window upper left Y coordinate */&lt;br /&gt;
  SHORT WindowBorderWidth;  /* Window border width */&lt;br /&gt;
  SHORT WindowNumColors;    /* Number of color entries in window */&lt;br /&gt;
} X10WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 06h.&lt;br /&gt;
&lt;br /&gt;
DisplayType is the type of the display from which the image was dumped.&lt;br /&gt;
&lt;br /&gt;
DisplayPlanes is the number of color planes in the image data. This value is typically 01h or 03h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat indicates the format of the bitmap. A value of 00h indicates a single-plane bitmap (XYFormat), and a value of 01h indicates a bitmap with two or more planes (ZFormat).&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight represent the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY represent the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth indicates the width of the window border in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowNumColors specifies the number of colors that can be displayed in the window.&lt;br /&gt;
&lt;br /&gt;
If the image is a PseudoColor image, a color map immediately follows the header. The color map contains one entry per color in the image, and each entry has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10ColorMap&lt;br /&gt;
{&lt;br /&gt;
  WORD EntryNumber;     /* Number of the color-map entry */&lt;br /&gt;
  WORD Red;             /* Red-channel value */&lt;br /&gt;
  WORD Green;           /* Green-channel value */&lt;br /&gt;
  WORD Blue;            /* Blue-channel value */&lt;br /&gt;
} X10COLORMAP[WindowNumColors];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color-map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
The XWD format was revised for Version 11 of the X Window System. The new format can store more types of image data and many fields have been added to the header and to the color map, reflecting the increased graphics capabilities of X11 over X10.&lt;br /&gt;
&lt;br /&gt;
The Version 11 XWD file format contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11WindowDump&lt;br /&gt;
{&lt;br /&gt;
  DWORD HeaderSize;     /* Size of the header in bytes */&lt;br /&gt;
  DWORD FileVersion;    /* X11WD file version (always 07h) */&lt;br /&gt;
  DWORD PixmapFormat;   /* Pixmap format */&lt;br /&gt;
  DWORD PixmapDepth;    /* Pixmap depth in pixels */&lt;br /&gt;
  DWORD PixmapWidth;    /* Pixmap width in pixels */ /&lt;br /&gt;
  DWORD PixmapHeight;   /* Pixmap height in pixels */&lt;br /&gt;
  DWORD XOffset;        /* Bitmap X offset */&lt;br /&gt;
  DWORD ByteOrder;      /* Byte order of image data */&lt;br /&gt;
  DWORD BitmapUnit;     /* Bitmap base data size */&lt;br /&gt;
  DWORD BitmapBitOrder; /* Bit-order of image data */&lt;br /&gt;
  DWORD BitmapPad;      /* Bitmap scan-line pad*/&lt;br /&gt;
  DWORD BitsPerPixel;   /* Bits per pixel */&lt;br /&gt;
  DWORD BytesPerLine;   /* Bytes per scan-line */&lt;br /&gt;
  DWORD VisualClass;    /* Class of the image */&lt;br /&gt;
  DWORD RedMask;        /* Red mask */&lt;br /&gt;
  DWORD GreenMask;      /* Green mask */&lt;br /&gt;
  DWORD BlueMask;       /* Blue mask */&lt;br /&gt;
  DWORD BitsPerRgb;     /* Size of each color mask in bits */&lt;br /&gt;
  DWORD NumberOfColors;         /* Number of colors in image */&lt;br /&gt;
  DWORD ColorMapEntries;        /* Number of entries in color map */&lt;br /&gt;
  DWORD WindowWidth;    /* Window width */&lt;br /&gt;
  DWORD WindowHeight;   /* Window height */&lt;br /&gt;
  LONG  WindowX;        /* Window upper left X coordinate */&lt;br /&gt;
  LONG  WindowY;        /* Window upper left Y coordinate */&lt;br /&gt;
  DWORD WindowBorderWidth;      /* Window border width */&lt;br /&gt;
} X11WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 07h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat is the format of the image data. A value of 00h indicates a 1-bit (XYBitmap) format. A value of 01h indicates a single-plane bitmap (XYPixmap). A value of 02h indicates a bitmap with two or more planes (ZPixmap).&lt;br /&gt;
&lt;br /&gt;
PixmapDepth is the depth of the bitmap in pixels. This value is 1 to 32.&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
XOffset specifies the number of pixels to ignore at the beginning of each scan-line.&lt;br /&gt;
&lt;br /&gt;
ByteOrder indicates the byte order of the image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapUnit is the size of each data unit in each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitmapBitOrder indicates the order of the bits within each byte of image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapPad is the number of bits of padding added to each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitsPerPixel contains the size of each pixel in bits. For StaticGray and GrayScale images, this value is 1. For StaticColor and PseudoColor images, this value is 2 to 15 (typically 8). For TrueColor and DirectColor images, this value is 16, 24, or 32.&lt;br /&gt;
&lt;br /&gt;
BytesPerLine is the size of each scan line in bytes.&lt;br /&gt;
&lt;br /&gt;
VisualClass indicates the format of the image data:&lt;br /&gt;
&lt;br /&gt;
    * Even-numbered values indicate fixed-image data that cannot be changed in memory.&lt;br /&gt;
&lt;br /&gt;
    * Odd-numbered values indicate dynamic image data that may be altered.&lt;br /&gt;
&lt;br /&gt;
    * The values 00h (StaticGray) and 01h (GrayScale) specify a gray-scale image.&lt;br /&gt;
&lt;br /&gt;
    * The values 02h (StaticColor) and 03h (PseudoColor) indicate a color mapped image.&lt;br /&gt;
&lt;br /&gt;
    * The values 04h (TrueColor) and 05h (DirectColor) indicate true-color image data.&lt;br /&gt;
&lt;br /&gt;
RedMask, GreenMask, and BlueMask are the RGB mask values used by ZPixmaps.&lt;br /&gt;
&lt;br /&gt;
BitsPerRgb is the size of each RedMask, GreenMask, and BlueMask in bits.&lt;br /&gt;
&lt;br /&gt;
NumberOfColors specifies the number of colors in the image. This value also indicates the number of colors for colormapped images as well.&lt;br /&gt;
&lt;br /&gt;
ColorMapEntries contains the number of entries in the color map. This value is 00h if there is no color map.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight are the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY contain the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth is the width of the X Window border in pixels. If the border has not been captured in the dump, this value is 00h.&lt;br /&gt;
&lt;br /&gt;
The color map immediately follows the header. Each entry in the color map is 12 bytes in size and has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11ColorMap&lt;br /&gt;
{&lt;br /&gt;
  DWORD EntryNumber;    /* Number of the color map entry */&lt;br /&gt;
  WORD  Red;            /* Red-channel value */&lt;br /&gt;
  WORD  Green;          /* Green-channel value */&lt;br /&gt;
  WORD  Blue;           /* Blue-channel value */&lt;br /&gt;
  CHAR  Flags;          /* Flag for this entry */&lt;br /&gt;
  CHAR  Padding;        /* WORD-align padding */&lt;br /&gt;
} X11COLORMAP[ColorMapEntries];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
Flags indicates which of the color channels in the color map are actually used. The value of this field is typically 07h, indicating that all three channels are used.&lt;br /&gt;
&lt;br /&gt;
Padding is a byte set to a value of 00h and used to pad the color map entry out to an even WORD boundary in size.&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7016</id>
		<title>XWD</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7016"/>
		<updated>2007-02-18T02:09:03Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|+&lt;br /&gt;
|- Type  |	Bitmap ||&lt;br /&gt;
|- Colors |	Unlimited ||&lt;br /&gt;
|- Compression |	Uncompressed ||&lt;br /&gt;
|- Maximum Image Size |	64Kx64K ||&lt;br /&gt;
|- Multiple Images Per File |	No ||&lt;br /&gt;
|- Numerical Format |	Big- and little-endian ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
XWD is used to store images of captured X window displays.&lt;br /&gt;
&lt;br /&gt;
The XWD (X Window Dump) format is used specifically to store screen dumps created by the X Window System. Under X11, screen dumps are created by the xwd client. Using xwd, the window or background is selected to dump and an XWD file is produced containing an image of the window. If you issue the following command:&lt;br /&gt;
&lt;br /&gt;
% xwd -root &amp;gt; output.xwd&lt;br /&gt;
&lt;br /&gt;
the entire contents of the current display are saved to the file output.xwd. The id of the window to dump may also be specified by using the -id command-line flag on versions of xwd prior to Release 5.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
For Further Information&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
The first version of the X Window System to support window dumps was X10. Only gray-scale and color-mapped dumps were supported, and the bitmapped data was never compressed. The X10 version of XWD contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10WindowDump&lt;br /&gt;
{&lt;br /&gt;
  LONG  HeaderSize;         /* Header size in bytes */&lt;br /&gt;
  LONG  FileVersion;        /* X10 XWD file version (always 06h) */&lt;br /&gt;
  LONG  DisplayType;        /* Display type */&lt;br /&gt;
  LONG  DisplayPlanes;      /* Number of display planes */&lt;br /&gt;
  LONG  PixmapFormat;       /* Pixmap format */&lt;br /&gt;
  LONG  PixmapWidth;        /* Pixmap width */&lt;br /&gt;
  LONG  PixmapHeight;       /* Pixmap height */&lt;br /&gt;
  SHORT WindowWidth;        /* Window width */&lt;br /&gt;
  SHORT WindowHeight;       /* Window height */&lt;br /&gt;
  SHORT WindowX;            /* Window upper left X coordinate */&lt;br /&gt;
  SHORT WindowY;            /* Window upper left Y coordinate */&lt;br /&gt;
  SHORT WindowBorderWidth;  /* Window border width */&lt;br /&gt;
  SHORT WindowNumColors;    /* Number of color entries in window */&lt;br /&gt;
} X10WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 06h.&lt;br /&gt;
&lt;br /&gt;
DisplayType is the type of the display from which the image was dumped.&lt;br /&gt;
&lt;br /&gt;
DisplayPlanes is the number of color planes in the image data. This value is typically 01h or 03h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat indicates the format of the bitmap. A value of 00h indicates a single-plane bitmap (XYFormat), and a value of 01h indicates a bitmap with two or more planes (ZFormat).&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight represent the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY represent the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth indicates the width of the window border in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowNumColors specifies the number of colors that can be displayed in the window.&lt;br /&gt;
&lt;br /&gt;
If the image is a PseudoColor image, a color map immediately follows the header. The color map contains one entry per color in the image, and each entry has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10ColorMap&lt;br /&gt;
{&lt;br /&gt;
  WORD EntryNumber;     /* Number of the color-map entry */&lt;br /&gt;
  WORD Red;             /* Red-channel value */&lt;br /&gt;
  WORD Green;           /* Green-channel value */&lt;br /&gt;
  WORD Blue;            /* Blue-channel value */&lt;br /&gt;
} X10COLORMAP[WindowNumColors];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color-map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
The XWD format was revised for Version 11 of the X Window System. The new format can store more types of image data and many fields have been added to the header and to the color map, reflecting the increased graphics capabilities of X11 over X10.&lt;br /&gt;
&lt;br /&gt;
The Version 11 XWD file format contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11WindowDump&lt;br /&gt;
{&lt;br /&gt;
  DWORD HeaderSize;     /* Size of the header in bytes */&lt;br /&gt;
  DWORD FileVersion;    /* X11WD file version (always 07h) */&lt;br /&gt;
  DWORD PixmapFormat;   /* Pixmap format */&lt;br /&gt;
  DWORD PixmapDepth;    /* Pixmap depth in pixels */&lt;br /&gt;
  DWORD PixmapWidth;    /* Pixmap width in pixels */ /&lt;br /&gt;
  DWORD PixmapHeight;   /* Pixmap height in pixels */&lt;br /&gt;
  DWORD XOffset;        /* Bitmap X offset */&lt;br /&gt;
  DWORD ByteOrder;      /* Byte order of image data */&lt;br /&gt;
  DWORD BitmapUnit;     /* Bitmap base data size */&lt;br /&gt;
  DWORD BitmapBitOrder; /* Bit-order of image data */&lt;br /&gt;
  DWORD BitmapPad;      /* Bitmap scan-line pad*/&lt;br /&gt;
  DWORD BitsPerPixel;   /* Bits per pixel */&lt;br /&gt;
  DWORD BytesPerLine;   /* Bytes per scan-line */&lt;br /&gt;
  DWORD VisualClass;    /* Class of the image */&lt;br /&gt;
  DWORD RedMask;        /* Red mask */&lt;br /&gt;
  DWORD GreenMask;      /* Green mask */&lt;br /&gt;
  DWORD BlueMask;       /* Blue mask */&lt;br /&gt;
  DWORD BitsPerRgb;     /* Size of each color mask in bits */&lt;br /&gt;
  DWORD NumberOfColors;         /* Number of colors in image */&lt;br /&gt;
  DWORD ColorMapEntries;        /* Number of entries in color map */&lt;br /&gt;
  DWORD WindowWidth;    /* Window width */&lt;br /&gt;
  DWORD WindowHeight;   /* Window height */&lt;br /&gt;
  LONG  WindowX;        /* Window upper left X coordinate */&lt;br /&gt;
  LONG  WindowY;        /* Window upper left Y coordinate */&lt;br /&gt;
  DWORD WindowBorderWidth;      /* Window border width */&lt;br /&gt;
} X11WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 07h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat is the format of the image data. A value of 00h indicates a 1-bit (XYBitmap) format. A value of 01h indicates a single-plane bitmap (XYPixmap). A value of 02h indicates a bitmap with two or more planes (ZPixmap).&lt;br /&gt;
&lt;br /&gt;
PixmapDepth is the depth of the bitmap in pixels. This value is 1 to 32.&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
XOffset specifies the number of pixels to ignore at the beginning of each scan-line.&lt;br /&gt;
&lt;br /&gt;
ByteOrder indicates the byte order of the image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapUnit is the size of each data unit in each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitmapBitOrder indicates the order of the bits within each byte of image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapPad is the number of bits of padding added to each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitsPerPixel contains the size of each pixel in bits. For StaticGray and GrayScale images, this value is 1. For StaticColor and PseudoColor images, this value is 2 to 15 (typically 8). For TrueColor and DirectColor images, this value is 16, 24, or 32.&lt;br /&gt;
&lt;br /&gt;
BytesPerLine is the size of each scan line in bytes.&lt;br /&gt;
&lt;br /&gt;
VisualClass indicates the format of the image data:&lt;br /&gt;
&lt;br /&gt;
    * Even-numbered values indicate fixed-image data that cannot be changed in memory.&lt;br /&gt;
&lt;br /&gt;
    * Odd-numbered values indicate dynamic image data that may be altered.&lt;br /&gt;
&lt;br /&gt;
    * The values 00h (StaticGray) and 01h (GrayScale) specify a gray-scale image.&lt;br /&gt;
&lt;br /&gt;
    * The values 02h (StaticColor) and 03h (PseudoColor) indicate a color mapped image.&lt;br /&gt;
&lt;br /&gt;
    * The values 04h (TrueColor) and 05h (DirectColor) indicate true-color image data.&lt;br /&gt;
&lt;br /&gt;
RedMask, GreenMask, and BlueMask are the RGB mask values used by ZPixmaps.&lt;br /&gt;
&lt;br /&gt;
BitsPerRgb is the size of each RedMask, GreenMask, and BlueMask in bits.&lt;br /&gt;
&lt;br /&gt;
NumberOfColors specifies the number of colors in the image. This value also indicates the number of colors for colormapped images as well.&lt;br /&gt;
&lt;br /&gt;
ColorMapEntries contains the number of entries in the color map. This value is 00h if there is no color map.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight are the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY contain the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth is the width of the X Window border in pixels. If the border has not been captured in the dump, this value is 00h.&lt;br /&gt;
&lt;br /&gt;
The color map immediately follows the header. Each entry in the color map is 12 bytes in size and has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11ColorMap&lt;br /&gt;
{&lt;br /&gt;
  DWORD EntryNumber;    /* Number of the color map entry */&lt;br /&gt;
  WORD  Red;            /* Red-channel value */&lt;br /&gt;
  WORD  Green;          /* Green-channel value */&lt;br /&gt;
  WORD  Blue;           /* Blue-channel value */&lt;br /&gt;
  CHAR  Flags;          /* Flag for this entry */&lt;br /&gt;
  CHAR  Padding;        /* WORD-align padding */&lt;br /&gt;
} X11COLORMAP[ColorMapEntries];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
Flags indicates which of the color channels in the color map are actually used. The value of this field is typically 07h, indicating that all three channels are used.&lt;br /&gt;
&lt;br /&gt;
Padding is a byte set to a value of 00h and used to pad the color map entry out to an even WORD boundary in size.&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7015</id>
		<title>XWD</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7015"/>
		<updated>2007-02-18T02:07:04Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
Type  |	Bitmap ||&lt;br /&gt;
Colors |	Unlimited ||&lt;br /&gt;
Compression |	Uncompressed ||&lt;br /&gt;
Maximum Image Size |	64Kx64K ||&lt;br /&gt;
Multiple Images Per File |	No ||&lt;br /&gt;
Numerical Format |	Big- and little-endian ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
XWD is used to store images of captured X window displays.&lt;br /&gt;
&lt;br /&gt;
The XWD (X Window Dump) format is used specifically to store screen dumps created by the X Window System. Under X11, screen dumps are created by the xwd client. Using xwd, the window or background is selected to dump and an XWD file is produced containing an image of the window. If you issue the following command:&lt;br /&gt;
&lt;br /&gt;
% xwd -root &amp;gt; output.xwd&lt;br /&gt;
&lt;br /&gt;
the entire contents of the current display are saved to the file output.xwd. The id of the window to dump may also be specified by using the -id command-line flag on versions of xwd prior to Release 5.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
For Further Information&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
The first version of the X Window System to support window dumps was X10. Only gray-scale and color-mapped dumps were supported, and the bitmapped data was never compressed. The X10 version of XWD contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10WindowDump&lt;br /&gt;
{&lt;br /&gt;
  LONG  HeaderSize;         /* Header size in bytes */&lt;br /&gt;
  LONG  FileVersion;        /* X10 XWD file version (always 06h) */&lt;br /&gt;
  LONG  DisplayType;        /* Display type */&lt;br /&gt;
  LONG  DisplayPlanes;      /* Number of display planes */&lt;br /&gt;
  LONG  PixmapFormat;       /* Pixmap format */&lt;br /&gt;
  LONG  PixmapWidth;        /* Pixmap width */&lt;br /&gt;
  LONG  PixmapHeight;       /* Pixmap height */&lt;br /&gt;
  SHORT WindowWidth;        /* Window width */&lt;br /&gt;
  SHORT WindowHeight;       /* Window height */&lt;br /&gt;
  SHORT WindowX;            /* Window upper left X coordinate */&lt;br /&gt;
  SHORT WindowY;            /* Window upper left Y coordinate */&lt;br /&gt;
  SHORT WindowBorderWidth;  /* Window border width */&lt;br /&gt;
  SHORT WindowNumColors;    /* Number of color entries in window */&lt;br /&gt;
} X10WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 06h.&lt;br /&gt;
&lt;br /&gt;
DisplayType is the type of the display from which the image was dumped.&lt;br /&gt;
&lt;br /&gt;
DisplayPlanes is the number of color planes in the image data. This value is typically 01h or 03h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat indicates the format of the bitmap. A value of 00h indicates a single-plane bitmap (XYFormat), and a value of 01h indicates a bitmap with two or more planes (ZFormat).&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight represent the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY represent the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth indicates the width of the window border in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowNumColors specifies the number of colors that can be displayed in the window.&lt;br /&gt;
&lt;br /&gt;
If the image is a PseudoColor image, a color map immediately follows the header. The color map contains one entry per color in the image, and each entry has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10ColorMap&lt;br /&gt;
{&lt;br /&gt;
  WORD EntryNumber;     /* Number of the color-map entry */&lt;br /&gt;
  WORD Red;             /* Red-channel value */&lt;br /&gt;
  WORD Green;           /* Green-channel value */&lt;br /&gt;
  WORD Blue;            /* Blue-channel value */&lt;br /&gt;
} X10COLORMAP[WindowNumColors];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color-map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
The XWD format was revised for Version 11 of the X Window System. The new format can store more types of image data and many fields have been added to the header and to the color map, reflecting the increased graphics capabilities of X11 over X10.&lt;br /&gt;
&lt;br /&gt;
The Version 11 XWD file format contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11WindowDump&lt;br /&gt;
{&lt;br /&gt;
  DWORD HeaderSize;     /* Size of the header in bytes */&lt;br /&gt;
  DWORD FileVersion;    /* X11WD file version (always 07h) */&lt;br /&gt;
  DWORD PixmapFormat;   /* Pixmap format */&lt;br /&gt;
  DWORD PixmapDepth;    /* Pixmap depth in pixels */&lt;br /&gt;
  DWORD PixmapWidth;    /* Pixmap width in pixels */ /&lt;br /&gt;
  DWORD PixmapHeight;   /* Pixmap height in pixels */&lt;br /&gt;
  DWORD XOffset;        /* Bitmap X offset */&lt;br /&gt;
  DWORD ByteOrder;      /* Byte order of image data */&lt;br /&gt;
  DWORD BitmapUnit;     /* Bitmap base data size */&lt;br /&gt;
  DWORD BitmapBitOrder; /* Bit-order of image data */&lt;br /&gt;
  DWORD BitmapPad;      /* Bitmap scan-line pad*/&lt;br /&gt;
  DWORD BitsPerPixel;   /* Bits per pixel */&lt;br /&gt;
  DWORD BytesPerLine;   /* Bytes per scan-line */&lt;br /&gt;
  DWORD VisualClass;    /* Class of the image */&lt;br /&gt;
  DWORD RedMask;        /* Red mask */&lt;br /&gt;
  DWORD GreenMask;      /* Green mask */&lt;br /&gt;
  DWORD BlueMask;       /* Blue mask */&lt;br /&gt;
  DWORD BitsPerRgb;     /* Size of each color mask in bits */&lt;br /&gt;
  DWORD NumberOfColors;         /* Number of colors in image */&lt;br /&gt;
  DWORD ColorMapEntries;        /* Number of entries in color map */&lt;br /&gt;
  DWORD WindowWidth;    /* Window width */&lt;br /&gt;
  DWORD WindowHeight;   /* Window height */&lt;br /&gt;
  LONG  WindowX;        /* Window upper left X coordinate */&lt;br /&gt;
  LONG  WindowY;        /* Window upper left Y coordinate */&lt;br /&gt;
  DWORD WindowBorderWidth;      /* Window border width */&lt;br /&gt;
} X11WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 07h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat is the format of the image data. A value of 00h indicates a 1-bit (XYBitmap) format. A value of 01h indicates a single-plane bitmap (XYPixmap). A value of 02h indicates a bitmap with two or more planes (ZPixmap).&lt;br /&gt;
&lt;br /&gt;
PixmapDepth is the depth of the bitmap in pixels. This value is 1 to 32.&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
XOffset specifies the number of pixels to ignore at the beginning of each scan-line.&lt;br /&gt;
&lt;br /&gt;
ByteOrder indicates the byte order of the image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapUnit is the size of each data unit in each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitmapBitOrder indicates the order of the bits within each byte of image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapPad is the number of bits of padding added to each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitsPerPixel contains the size of each pixel in bits. For StaticGray and GrayScale images, this value is 1. For StaticColor and PseudoColor images, this value is 2 to 15 (typically 8). For TrueColor and DirectColor images, this value is 16, 24, or 32.&lt;br /&gt;
&lt;br /&gt;
BytesPerLine is the size of each scan line in bytes.&lt;br /&gt;
&lt;br /&gt;
VisualClass indicates the format of the image data:&lt;br /&gt;
&lt;br /&gt;
    * Even-numbered values indicate fixed-image data that cannot be changed in memory.&lt;br /&gt;
&lt;br /&gt;
    * Odd-numbered values indicate dynamic image data that may be altered.&lt;br /&gt;
&lt;br /&gt;
    * The values 00h (StaticGray) and 01h (GrayScale) specify a gray-scale image.&lt;br /&gt;
&lt;br /&gt;
    * The values 02h (StaticColor) and 03h (PseudoColor) indicate a color mapped image.&lt;br /&gt;
&lt;br /&gt;
    * The values 04h (TrueColor) and 05h (DirectColor) indicate true-color image data.&lt;br /&gt;
&lt;br /&gt;
RedMask, GreenMask, and BlueMask are the RGB mask values used by ZPixmaps.&lt;br /&gt;
&lt;br /&gt;
BitsPerRgb is the size of each RedMask, GreenMask, and BlueMask in bits.&lt;br /&gt;
&lt;br /&gt;
NumberOfColors specifies the number of colors in the image. This value also indicates the number of colors for colormapped images as well.&lt;br /&gt;
&lt;br /&gt;
ColorMapEntries contains the number of entries in the color map. This value is 00h if there is no color map.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight are the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY contain the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth is the width of the X Window border in pixels. If the border has not been captured in the dump, this value is 00h.&lt;br /&gt;
&lt;br /&gt;
The color map immediately follows the header. Each entry in the color map is 12 bytes in size and has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11ColorMap&lt;br /&gt;
{&lt;br /&gt;
  DWORD EntryNumber;    /* Number of the color map entry */&lt;br /&gt;
  WORD  Red;            /* Red-channel value */&lt;br /&gt;
  WORD  Green;          /* Green-channel value */&lt;br /&gt;
  WORD  Blue;           /* Blue-channel value */&lt;br /&gt;
  CHAR  Flags;          /* Flag for this entry */&lt;br /&gt;
  CHAR  Padding;        /* WORD-align padding */&lt;br /&gt;
} X11COLORMAP[ColorMapEntries];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
Flags indicates which of the color channels in the color map are actually used. The value of this field is typically 07h, indicating that all three channels are used.&lt;br /&gt;
&lt;br /&gt;
Padding is a byte set to a value of 00h and used to pad the color map entry out to an even WORD boundary in size.&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XBM&amp;diff=7014</id>
		<title>XBM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XBM&amp;diff=7014"/>
		<updated>2007-02-18T02:00:00Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Type  	Bitmap&lt;br /&gt;
Colors 	Mono&lt;br /&gt;
Compression 	None&lt;br /&gt;
Maximum Image Size 	Unlimited&lt;br /&gt;
Multiple Images Per File 	Yes&lt;br /&gt;
Numerical Format 	ASCII&lt;br /&gt;
Originator 	X Consortium&lt;br /&gt;
Platform 	Any supporting X Window System&lt;br /&gt;
Supporting Applications 	BRL-CAD&lt;br /&gt;
See Also 	XPM&lt;br /&gt;
&lt;br /&gt;
Usage&lt;br /&gt;
Primarily used for the storage of cursor and icon bitmaps for use in the X graphical user interface.&lt;br /&gt;
&lt;br /&gt;
Comments&lt;br /&gt;
XBM is a monochrome bitmap format in which data is stored as a C language data array.&lt;br /&gt;
&lt;br /&gt;
Code fragments are available for this format.&lt;br /&gt;
&lt;br /&gt;
Sample images are available for this format.&lt;br /&gt;
&lt;br /&gt;
Normally, we think of images as data being stored as binary information in a file. In many cases, however, it is more convenient to represent smaller bitmapped images as collections of ASCII data rather than binary data. If such a small bitmapped image is being used by a software application, such as the cursors and icons found in all graphical user interfaces, the images may be stored as an array of ASCII characters, or even as an array of data values stored in the actual software source code.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
File Details&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
Storing small amounts of image data directly as C language source code is the philosophy behind the XBM (X BitMap) format. Small images that will be compiled into a software program are stored as simple arrays of data values, with one array used per stored image. XBM files are therefore nothing more than C language source files that are read by a compiler, rather than by a graphical display program or bitmap editor, as are most other graphical files.&lt;br /&gt;
&lt;br /&gt;
XBM bitmap data is mostly found in C source header files (with a .h file extension) and in separate XBM bitmap files (with no file extension). Multiple XBM image-data arrays may be stored in a single file, but none of the images may have the same name, or a naming conflict will result.&lt;br /&gt;
&lt;br /&gt;
The XPM (X PixMap) format is similar to XBM. XPM is a cousin of XBM and is capable of storing color bitmap image data and a colormap. XPM is also an ASCII format and is described in the XPM article.&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
XBM files have a height and width, and may define an optional hotspot within the image. The hotspot is used for bitmapped cursors and indicates the absolute position of the cursor on the screen. The hotspot on an arrow cursor is the tip of the arrow, which is usually located at position 0,0 in the bitmap.&lt;br /&gt;
&lt;br /&gt;
In place of the usual image file format header, XBM files have two or four #define statements. The first two #defines specify the height and width of the bitmap in pixels. The second two specify the position of the hotspot within the bitmap, and are not present if no hotspot is defined in the image.&lt;br /&gt;
&lt;br /&gt;
The labels of each #define contain the name of the image. Consider an image that is 8x8 pixels in size, named FOO, with a hotspot at pixel 0,7. This image contains the following #define statements:&lt;br /&gt;
&lt;br /&gt;
#define FOO_width 8&lt;br /&gt;
#define FOO_height 8&lt;br /&gt;
#define FOO_x_hot 0&lt;br /&gt;
#define FOO_y_hot 7&lt;br /&gt;
&lt;br /&gt;
The image data itself is a single line of pixel values stored in a static array. Data representing our FOO image appears as follows:&lt;br /&gt;
&lt;br /&gt;
static unsigned char FOO_bits[] = {&lt;br /&gt;
    0x3E, 0x80, 0x00, 0x7C, 0x00, 0x82, 0x41, 0x00};&lt;br /&gt;
&lt;br /&gt;
Because each pixel is only one bit in size, each byte in the array contains the information for eight pixels, with the first pixel in the bitmap (at position 0,0) represented by the high bit of the first byte in the array. If the image width is not a multiple of eight, the extra bits in the last byte of each row are not used and are ignored.&lt;br /&gt;
&lt;br /&gt;
XBM files are found in two variations: the older X10 format and the newer (as of 1986) X11 format. The only difference between these formats is how the pixel data is packed. The X11 flavor stores pixel data as 8-bit BYTEs. The older X10 flavor stores pixel data as 16-bit WORDs. There are no markers separating the rows of image data in either of these formats, and the size of an XBM array is limited only by the compiler and machine using the bitmap.&lt;br /&gt;
&lt;br /&gt;
The X10 XBM is considered obsolete. Make sure that any X software you write is able to read both the XBM X10 and X11 formats, but when you write data, use only the X11 XBM format.&lt;br /&gt;
File Details&lt;br /&gt;
&lt;br /&gt;
Following is an example of a 16x16 XBM bitmap stored using both its X10 and X11 variations. Note that each array contains exactly the same data, but is stored using different data word types:&lt;br /&gt;
&lt;br /&gt;
/* XBM X10 format */&lt;br /&gt;
#define xlogo16_width 16&lt;br /&gt;
#define xlogo16_height 16&lt;br /&gt;
static unsigned short xlogo16_bits[] = {&lt;br /&gt;
    0x0f80, 0x1e80, 0x3c40, 0x7820, 0x7810, 0xf008, 0xe009, 0xc005,&lt;br /&gt;
    0xc002, 0x4007, 0x200f, 0x201e, 0x101e, 0x083c, 0x0478,&lt;br /&gt;
    0x02f0};&lt;br /&gt;
/* XBM X11 format */&lt;br /&gt;
#define xlogo16_width 16&lt;br /&gt;
#define xlogo16_height 16&lt;br /&gt;
static unsigned char xlogo16_bits[] = {&lt;br /&gt;
    0x0f, 0x80, 0x1e, 0x80, 0x3c, 0x40, 0x78, 0x20, 0x78, 0x10,&lt;br /&gt;
    0xf0, 0x08, 0xe0, 0x09, 0xc0, 0x05, 0xc0, 0x02, 0x40, 0x07,&lt;br /&gt;
    0x20, 0x0f, 0x20, 0x1e, 0x10, 0x1e, 0x08, 0x3c, 0x04, 0x78,&lt;br /&gt;
    0x02, 0xf0};&lt;br /&gt;
&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
For further information about the XBM format, see the code examples included on the CD-ROM.&lt;br /&gt;
&lt;br /&gt;
The XBM format is part of the X Window System created by the X Consortium. The X11 source code distribution contains many XBM files (in the /bitmaps directory) and C language source code functions (such as XCreateBitmapFromData, XCreatePixmapFromBitmapData, XReadBitmapFile, and XWriteBitmapFile), which operate upon XBM data. The central FTP site for X11 distribution is:&lt;br /&gt;
&lt;br /&gt;
ftp://ftp.x.org/&lt;br /&gt;
&lt;br /&gt;
Other references containing information on XBM include the following:&lt;br /&gt;
&lt;br /&gt;
    Gettys, James, and Robert W. Scheiffler, X Window System, Digital Press, 1992.&lt;br /&gt;
&lt;br /&gt;
    Gettys, James, Robert W. Scheiffler, et al. Xlib-C language X Interface, X Consortium Standard, X Version 11, Release 5, First Revision, August 1991.&lt;br /&gt;
&lt;br /&gt;
    Nye, Adrian, Xlib Programming Manual, third edition, O'Reilly &amp;amp; Associates, Inc., Sebastopol, CA, 1992. &lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7013</id>
		<title>XWD</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XWD&amp;diff=7013"/>
		<updated>2007-02-18T01:47:48Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Type  	Bitmap&lt;br /&gt;
Colors 	Unlimited&lt;br /&gt;
Compression 	Uncompressed&lt;br /&gt;
Maximum Image Size 	64Kx64K&lt;br /&gt;
Multiple Images Per File 	No&lt;br /&gt;
Numerical Format 	Big- and little-endian&lt;br /&gt;
Originator 	X Consortium&lt;br /&gt;
Platform 	UNIX X Windows&lt;br /&gt;
Supporting Applications 	Many&lt;br /&gt;
See Also 	None&lt;br /&gt;
&lt;br /&gt;
Usage&lt;br /&gt;
XWD is used to store images of captured X window displays.&lt;br /&gt;
&lt;br /&gt;
Comments&lt;br /&gt;
Many image-processing and display applications and toolkits read and write XWD format image files.&lt;br /&gt;
&lt;br /&gt;
Vendor specifications are available for this format.&lt;br /&gt;
&lt;br /&gt;
Code fragments are available for this format.&lt;br /&gt;
&lt;br /&gt;
Sample images are available for this format.&lt;br /&gt;
&lt;br /&gt;
The XWD (X Window Dump) format is used specifically to store screen dumps created by the X Window System. Under X11, screen dumps are created by the xwd client. Using xwd, the window or background is selected to dump and an XWD file is produced containing an image of the window. If you issue the following command:&lt;br /&gt;
&lt;br /&gt;
% xwd -root &amp;gt; output.xwd&lt;br /&gt;
&lt;br /&gt;
the entire contents of the current display are saved to the file output.xwd. The id of the window to dump may also be specified by using the -id command-line flag on versions of xwd prior to Release 5.&lt;br /&gt;
&lt;br /&gt;
Contents:&lt;br /&gt;
File Organization&lt;br /&gt;
For Further Information&lt;br /&gt;
File Organization&lt;br /&gt;
&lt;br /&gt;
The first version of the X Window System to support window dumps was X10. Only gray-scale and color-mapped dumps were supported, and the bitmapped data was never compressed. The X10 version of XWD contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10WindowDump&lt;br /&gt;
{&lt;br /&gt;
  LONG  HeaderSize;         /* Header size in bytes */&lt;br /&gt;
  LONG  FileVersion;        /* X10 XWD file version (always 06h) */&lt;br /&gt;
  LONG  DisplayType;        /* Display type */&lt;br /&gt;
  LONG  DisplayPlanes;      /* Number of display planes */&lt;br /&gt;
  LONG  PixmapFormat;       /* Pixmap format */&lt;br /&gt;
  LONG  PixmapWidth;        /* Pixmap width */&lt;br /&gt;
  LONG  PixmapHeight;       /* Pixmap height */&lt;br /&gt;
  SHORT WindowWidth;        /* Window width */&lt;br /&gt;
  SHORT WindowHeight;       /* Window height */&lt;br /&gt;
  SHORT WindowX;            /* Window upper left X coordinate */&lt;br /&gt;
  SHORT WindowY;            /* Window upper left Y coordinate */&lt;br /&gt;
  SHORT WindowBorderWidth;  /* Window border width */&lt;br /&gt;
  SHORT WindowNumColors;    /* Number of color entries in window */&lt;br /&gt;
} X10WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 06h.&lt;br /&gt;
&lt;br /&gt;
DisplayType is the type of the display from which the image was dumped.&lt;br /&gt;
&lt;br /&gt;
DisplayPlanes is the number of color planes in the image data. This value is typically 01h or 03h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat indicates the format of the bitmap. A value of 00h indicates a single-plane bitmap (XYFormat), and a value of 01h indicates a bitmap with two or more planes (ZFormat).&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight represent the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY represent the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth indicates the width of the window border in pixels.&lt;br /&gt;
&lt;br /&gt;
WindowNumColors specifies the number of colors that can be displayed in the window.&lt;br /&gt;
&lt;br /&gt;
If the image is a PseudoColor image, a color map immediately follows the header. The color map contains one entry per color in the image, and each entry has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X10ColorMap&lt;br /&gt;
{&lt;br /&gt;
  WORD EntryNumber;     /* Number of the color-map entry */&lt;br /&gt;
  WORD Red;             /* Red-channel value */&lt;br /&gt;
  WORD Green;           /* Green-channel value */&lt;br /&gt;
  WORD Blue;            /* Blue-channel value */&lt;br /&gt;
} X10COLORMAP[WindowNumColors];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color-map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
The XWD format was revised for Version 11 of the X Window System. The new format can store more types of image data and many fields have been added to the header and to the color map, reflecting the increased graphics capabilities of X11 over X10.&lt;br /&gt;
&lt;br /&gt;
The Version 11 XWD file format contains the following header:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11WindowDump&lt;br /&gt;
{&lt;br /&gt;
  DWORD HeaderSize;     /* Size of the header in bytes */&lt;br /&gt;
  DWORD FileVersion;    /* X11WD file version (always 07h) */&lt;br /&gt;
  DWORD PixmapFormat;   /* Pixmap format */&lt;br /&gt;
  DWORD PixmapDepth;    /* Pixmap depth in pixels */&lt;br /&gt;
  DWORD PixmapWidth;    /* Pixmap width in pixels */ /&lt;br /&gt;
  DWORD PixmapHeight;   /* Pixmap height in pixels */&lt;br /&gt;
  DWORD XOffset;        /* Bitmap X offset */&lt;br /&gt;
  DWORD ByteOrder;      /* Byte order of image data */&lt;br /&gt;
  DWORD BitmapUnit;     /* Bitmap base data size */&lt;br /&gt;
  DWORD BitmapBitOrder; /* Bit-order of image data */&lt;br /&gt;
  DWORD BitmapPad;      /* Bitmap scan-line pad*/&lt;br /&gt;
  DWORD BitsPerPixel;   /* Bits per pixel */&lt;br /&gt;
  DWORD BytesPerLine;   /* Bytes per scan-line */&lt;br /&gt;
  DWORD VisualClass;    /* Class of the image */&lt;br /&gt;
  DWORD RedMask;        /* Red mask */&lt;br /&gt;
  DWORD GreenMask;      /* Green mask */&lt;br /&gt;
  DWORD BlueMask;       /* Blue mask */&lt;br /&gt;
  DWORD BitsPerRgb;     /* Size of each color mask in bits */&lt;br /&gt;
  DWORD NumberOfColors;         /* Number of colors in image */&lt;br /&gt;
  DWORD ColorMapEntries;        /* Number of entries in color map */&lt;br /&gt;
  DWORD WindowWidth;    /* Window width */&lt;br /&gt;
  DWORD WindowHeight;   /* Window height */&lt;br /&gt;
  LONG  WindowX;        /* Window upper left X coordinate */&lt;br /&gt;
  LONG  WindowY;        /* Window upper left Y coordinate */&lt;br /&gt;
  DWORD WindowBorderWidth;      /* Window border width */&lt;br /&gt;
} X11WINDOWDUMP;&lt;br /&gt;
&lt;br /&gt;
HeaderSize is the size of the header in bytes. This value is always 40.&lt;br /&gt;
&lt;br /&gt;
FileVersion contains the version number of the XWD file. This value is always 07h.&lt;br /&gt;
&lt;br /&gt;
PixmapFormat is the format of the image data. A value of 00h indicates a 1-bit (XYBitmap) format. A value of 01h indicates a single-plane bitmap (XYPixmap). A value of 02h indicates a bitmap with two or more planes (ZPixmap).&lt;br /&gt;
&lt;br /&gt;
PixmapDepth is the depth of the bitmap in pixels. This value is 1 to 32.&lt;br /&gt;
&lt;br /&gt;
PixmapWidth and PixmapHeight represent the size of the image in pixels.&lt;br /&gt;
&lt;br /&gt;
XOffset specifies the number of pixels to ignore at the beginning of each scan-line.&lt;br /&gt;
&lt;br /&gt;
ByteOrder indicates the byte order of the image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapUnit is the size of each data unit in each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitmapBitOrder indicates the order of the bits within each byte of image data. Values for this field are 00h for least significant byte first, and 0 for most significant byte first.&lt;br /&gt;
&lt;br /&gt;
BitmapPad is the number of bits of padding added to each scan line. This value may be 8, 16, or 32.&lt;br /&gt;
&lt;br /&gt;
BitsPerPixel contains the size of each pixel in bits. For StaticGray and GrayScale images, this value is 1. For StaticColor and PseudoColor images, this value is 2 to 15 (typically 8). For TrueColor and DirectColor images, this value is 16, 24, or 32.&lt;br /&gt;
&lt;br /&gt;
BytesPerLine is the size of each scan line in bytes.&lt;br /&gt;
&lt;br /&gt;
VisualClass indicates the format of the image data:&lt;br /&gt;
&lt;br /&gt;
    * Even-numbered values indicate fixed-image data that cannot be changed in memory.&lt;br /&gt;
&lt;br /&gt;
    * Odd-numbered values indicate dynamic image data that may be altered.&lt;br /&gt;
&lt;br /&gt;
    * The values 00h (StaticGray) and 01h (GrayScale) specify a gray-scale image.&lt;br /&gt;
&lt;br /&gt;
    * The values 02h (StaticColor) and 03h (PseudoColor) indicate a color mapped image.&lt;br /&gt;
&lt;br /&gt;
    * The values 04h (TrueColor) and 05h (DirectColor) indicate true-color image data.&lt;br /&gt;
&lt;br /&gt;
RedMask, GreenMask, and BlueMask are the RGB mask values used by ZPixmaps.&lt;br /&gt;
&lt;br /&gt;
BitsPerRgb is the size of each RedMask, GreenMask, and BlueMask in bits.&lt;br /&gt;
&lt;br /&gt;
NumberOfColors specifies the number of colors in the image. This value also indicates the number of colors for colormapped images as well.&lt;br /&gt;
&lt;br /&gt;
ColorMapEntries contains the number of entries in the color map. This value is 00h if there is no color map.&lt;br /&gt;
&lt;br /&gt;
WindowWidth and WindowHeight are the size of the window to display.&lt;br /&gt;
&lt;br /&gt;
WindowX and WindowY contain the position of the window on the display.&lt;br /&gt;
&lt;br /&gt;
WindowBorderWidth is the width of the X Window border in pixels. If the border has not been captured in the dump, this value is 00h.&lt;br /&gt;
&lt;br /&gt;
The color map immediately follows the header. Each entry in the color map is 12 bytes in size and has the following format:&lt;br /&gt;
&lt;br /&gt;
typedef struct _X11ColorMap&lt;br /&gt;
{&lt;br /&gt;
  DWORD EntryNumber;    /* Number of the color map entry */&lt;br /&gt;
  WORD  Red;            /* Red-channel value */&lt;br /&gt;
  WORD  Green;          /* Green-channel value */&lt;br /&gt;
  WORD  Blue;           /* Blue-channel value */&lt;br /&gt;
  CHAR  Flags;          /* Flag for this entry */&lt;br /&gt;
  CHAR  Padding;        /* WORD-align padding */&lt;br /&gt;
} X11COLORMAP[ColorMapEntries];&lt;br /&gt;
&lt;br /&gt;
EntryNumber is the number of the color map entry. This value starts at 00h. Color maps typically do not exceed 256 entries in size.&lt;br /&gt;
&lt;br /&gt;
Red, Green, and Blue are the RGB channel values for this entry. The range of each of these values is typically 0 to 65535; often, only the high byte of the value is set (i.e., the value is 0-255 shifted left eight bits.)&lt;br /&gt;
&lt;br /&gt;
Flags indicates which of the color channels in the color map are actually used. The value of this field is typically 07h, indicating that all three channels are used.&lt;br /&gt;
&lt;br /&gt;
Padding is a byte set to a value of 00h and used to pad the color map entry out to an even WORD boundary in size.&lt;br /&gt;
For Further Information&lt;br /&gt;
&lt;br /&gt;
For further information about the XWD format, see the documentation included on the CD-ROM.&lt;br /&gt;
&lt;br /&gt;
The XWD format is part of the X Window System created by the X Consortium. Information about the XWD format, and, indeed, all of the file formats associated with the X Window System, is scattered over a wide variety of header files (in /usr/include/X11) and UNIX manual pages.&lt;br /&gt;
&lt;br /&gt;
The central FTP distribution site for X11 is:&lt;br /&gt;
&lt;br /&gt;
ftp://ftp.x.org/&lt;br /&gt;
&lt;br /&gt;
Many image-processing and display applications and toolkits included on the CD-ROM (e.g., FBM, ImageMagick, pbmplus, xli, xloadimage, and xvread) and write XWD-format image files, and documentation for those tools may contain additional information about XWD.&lt;br /&gt;
&lt;br /&gt;
This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7012</id>
		<title>XPM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7012"/>
		<updated>2007-02-18T01:32:06Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''XPM''' (''X PixMap'') is an ASCII image format used by the X Window System. It was created in 1989 by Daniel Dardailler and Colas Nahaboo working at the INRIA, France, and was later enhanced by Arnaud Le Hors. It is intended primarily for creating icon pixmaps, and supports transparent color. It has a simple structure, deriving from the earlier [[XBM]] syntax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Three styles are known, the simple XPM2:&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;128 128 64 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;z c #f6f6f6&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;Z c #eeeeee&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., palette using '''1''' character codes''&lt;br /&gt;
:&amp;lt;tt&amp;gt;@ c #080808&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;. c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;............................................&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''truncated first row, each dot is a pixel with colour &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; as defined above.''&lt;br /&gt;
&lt;br /&gt;
This is about an XPM2 image with width 128, height 128, 64 colours, using one character per pixel.&lt;br /&gt;
One tool is known to use only '''a''' to '''p''' for 16 colours, switching to '''aa''' up to '''dp''' for 64 colours,&lt;br /&gt;
but still reading single character encodings for 64 colours, compare [[Base64]].&lt;br /&gt;
 &lt;br /&gt;
With more colours the codes use more characters, e.g. '''aa''' up to '''pp''' for 16*16=256 colours. This is less useful&lt;br /&gt;
for text editors, because a string '''ab''' could be actually the middle of two adjacent pixels '''dabc'''. Spaces are&lt;br /&gt;
allowed as colour code, see [[#External links|links]], but might be a bad idea depending on the used text editor. Without&lt;br /&gt;
control codes, space, and quote (needed in XPM1 and XPM3) 128-33-2=93 [[ASCII]] characters are available for single character&lt;br /&gt;
colour codes.      &lt;br /&gt;
&lt;br /&gt;
It's helpful if the converter from other formats to XPM can sort the palette from white to black, because one of the &lt;br /&gt;
reasons to edit an icon might be to get rid of antialiasing artefacts after a reduction of the number colours, adding&lt;br /&gt;
affected pixels to &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; acting as transparency colour (the dots in the example).&lt;br /&gt;
&lt;br /&gt;
For XPM2 it's clear how many lines belong to the image, two header lines, the second header line announcing the number of&lt;br /&gt;
colour codes (64 lines in the example above) and rows (height 128 in the example above), e.g. 2+64+128=194 lines.&lt;br /&gt;
&lt;br /&gt;
The other styles are designed to be used as is in C sources, example:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_format 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_width 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_height 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_ncolors 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_chars_per_pixel 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_colors[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;a&amp;quot;, &amp;quot;#ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;b&amp;quot;, &amp;quot;#000000&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;};&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_pixels[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., 48 rows with 48 pixels''.&lt;br /&gt;
&lt;br /&gt;
This is a black and white image in the first (1989) XPM format.&lt;br /&gt;
The source icon was in [[PNG]] format, and although it defined &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; as&lt;br /&gt;
transparent, this detail was lost in the conversion. The&lt;br /&gt;
hex. RGB &amp;lt;tt&amp;gt;#123456&amp;lt;/tt&amp;gt; codes can be also replaced by known&lt;br /&gt;
colour names found in a &amp;quot;well known location&amp;quot; &amp;lt;tt&amp;gt;rgb.txt&amp;lt;/tt&amp;gt;,&lt;br /&gt;
where &amp;quot;well known location&amp;quot; depends on the operating &lt;br /&gt;
system and the used tools. The XPM &amp;quot;colour&amp;quot; name for transparency is '''none'''.&lt;br /&gt;
&lt;br /&gt;
Just for the records the same image in the other styles:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;48 48 2 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;a c #ffffff&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;b c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt; /* XPM */&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; static char * XFACE[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;48 48 2 1&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;a c #ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;b c #000000&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
The latter format is XPM3, the common format used&lt;br /&gt;
for the X Window System since about 1991. The '''c'''&lt;br /&gt;
means &amp;quot;colour&amp;quot;, it's possible to add '''m''' for&lt;br /&gt;
&amp;quot;monochrome&amp;quot; output, '''g''' for &amp;quot;grayscale&amp;quot;, and '''s''' for &amp;quot;symbolic&amp;quot;, &lt;br /&gt;
explaining what a defined colour is supposed to do.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;symbolic&amp;quot; feature allows to adjust colours&lt;br /&gt;
depending on the context where they are used, like&lt;br /&gt;
say &amp;lt;tt&amp;gt;s border c blue&amp;lt;/tt&amp;gt; could be adjusted on&lt;br /&gt;
a blue background.&lt;br /&gt;
&lt;br /&gt;
If the width, height, colours, and characters per&lt;br /&gt;
pixel line contains six instead of four numbers the&lt;br /&gt;
additional values indicate the coordinates of a&lt;br /&gt;
&amp;quot;hotspot&amp;quot;, '''0 0''' is the upper left corner&lt;br /&gt;
of a box containing the icon and the default. A&lt;br /&gt;
&amp;quot;hotspot&amp;quot; is used for mouse pointers and similar&lt;br /&gt;
applications.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7011</id>
		<title>XPM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7011"/>
		<updated>2007-02-18T01:31:36Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: /* Styles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox file format&lt;br /&gt;
| name = X PixMap&lt;br /&gt;
| extension = &amp;lt;tt&amp;gt;.xpm&amp;lt;/tt&amp;gt;&lt;br /&gt;
| mime = image/x-xpixmap&amp;amp;nbsp;&amp;lt;/code&amp;gt;&amp;lt;small&amp;gt;'''unofficial'''&amp;lt;/small&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;image/x-xpm&amp;amp;nbsp;&amp;lt;/code&amp;gt;&amp;lt;small&amp;gt;'''unofficial'''&amp;lt;/small&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
| owner = BULL Research &lt;br /&gt;
| creatorcode = &lt;br /&gt;
| genre = [[Image file formats]]&lt;br /&gt;
| containerfor = &lt;br /&gt;
| containedby = &lt;br /&gt;
| extendedfrom = [[XBM]] and [[Portable pixmap]]&lt;br /&gt;
| extendedto = &lt;br /&gt;
}}&lt;br /&gt;
'''XPM''' (''X PixMap'') is an ASCII image format used by the X Window System. It was created in 1989 by Daniel Dardailler and Colas Nahaboo working at the INRIA, France, and was later enhanced by Arnaud Le Hors. It is intended primarily for creating icon pixmaps, and supports transparent color. It has a simple structure, deriving from the earlier [[XBM]] syntax. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Three styles are known, the simple XPM2:&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;128 128 64 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;z c #f6f6f6&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;Z c #eeeeee&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., palette using '''1''' character codes''&lt;br /&gt;
:&amp;lt;tt&amp;gt;@ c #080808&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;. c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;............................................&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''truncated first row, each dot is a pixel with colour &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; as defined above.''&lt;br /&gt;
&lt;br /&gt;
This is about an XPM2 image with width 128, height 128, 64 colours, using one character per pixel.&lt;br /&gt;
One tool is known to use only '''a''' to '''p''' for 16 colours, switching to '''aa''' up to '''dp''' for 64 colours,&lt;br /&gt;
but still reading single character encodings for 64 colours, compare [[Base64]].&lt;br /&gt;
 &lt;br /&gt;
With more colours the codes use more characters, e.g. '''aa''' up to '''pp''' for 16*16=256 colours. This is less useful&lt;br /&gt;
for text editors, because a string '''ab''' could be actually the middle of two adjacent pixels '''dabc'''. Spaces are&lt;br /&gt;
allowed as colour code, see [[#External links|links]], but might be a bad idea depending on the used text editor. Without&lt;br /&gt;
control codes, space, and quote (needed in XPM1 and XPM3) 128-33-2=93 [[ASCII]] characters are available for single character&lt;br /&gt;
colour codes.      &lt;br /&gt;
&lt;br /&gt;
It's helpful if the converter from other formats to XPM can sort the palette from white to black, because one of the &lt;br /&gt;
reasons to edit an icon might be to get rid of antialiasing artefacts after a reduction of the number colours, adding&lt;br /&gt;
affected pixels to &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; acting as transparency colour (the dots in the example).&lt;br /&gt;
&lt;br /&gt;
For XPM2 it's clear how many lines belong to the image, two header lines, the second header line announcing the number of&lt;br /&gt;
colour codes (64 lines in the example above) and rows (height 128 in the example above), e.g. 2+64+128=194 lines.&lt;br /&gt;
&lt;br /&gt;
The other styles are designed to be used as is in C sources, example:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_format 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_width 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_height 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_ncolors 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_chars_per_pixel 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_colors[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;a&amp;quot;, &amp;quot;#ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;b&amp;quot;, &amp;quot;#000000&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;};&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_pixels[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., 48 rows with 48 pixels''.&lt;br /&gt;
&lt;br /&gt;
This is a black and white image in the first (1989) XPM format.&lt;br /&gt;
The source icon was in [[PNG]] format, and although it defined &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; as&lt;br /&gt;
transparent, this detail was lost in the conversion. The&lt;br /&gt;
hex. RGB &amp;lt;tt&amp;gt;#123456&amp;lt;/tt&amp;gt; codes can be also replaced by known&lt;br /&gt;
colour names found in a &amp;quot;well known location&amp;quot; &amp;lt;tt&amp;gt;rgb.txt&amp;lt;/tt&amp;gt;,&lt;br /&gt;
where &amp;quot;well known location&amp;quot; depends on the operating &lt;br /&gt;
system and the used tools. The XPM &amp;quot;colour&amp;quot; name for transparency is '''none'''.&lt;br /&gt;
&lt;br /&gt;
Just for the records the same image in the other styles:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;48 48 2 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;a c #ffffff&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;b c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt; /* XPM */&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; static char * XFACE[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;48 48 2 1&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;a c #ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;b c #000000&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
The latter format is XPM3, the common format used&lt;br /&gt;
for the X Window System since about 1991. The '''c'''&lt;br /&gt;
means &amp;quot;colour&amp;quot;, it's possible to add '''m''' for&lt;br /&gt;
&amp;quot;monochrome&amp;quot; output, '''g''' for &amp;quot;grayscale&amp;quot;, and '''s''' for &amp;quot;symbolic&amp;quot;, &lt;br /&gt;
explaining what a defined colour is supposed to do.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;symbolic&amp;quot; feature allows to adjust colours&lt;br /&gt;
depending on the context where they are used, like&lt;br /&gt;
say &amp;lt;tt&amp;gt;s border c blue&amp;lt;/tt&amp;gt; could be adjusted on&lt;br /&gt;
a blue background.&lt;br /&gt;
&lt;br /&gt;
If the width, height, colours, and characters per&lt;br /&gt;
pixel line contains six instead of four numbers the&lt;br /&gt;
additional values indicate the coordinates of a&lt;br /&gt;
&amp;quot;hotspot&amp;quot;, '''0 0''' is the upper left corner&lt;br /&gt;
of a box containing the icon and the default. A&lt;br /&gt;
&amp;quot;hotspot&amp;quot; is used for mouse pointers and similar&lt;br /&gt;
applications.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7010</id>
		<title>XPM</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=XPM&amp;diff=7010"/>
		<updated>2007-02-18T01:27:39Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Styles ==&lt;br /&gt;
Three styles are known, the simple XPM2 stripped all [[C (programming language)|C]] idiosyncrasies, example:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;128 128 64 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;z c #f6f6f6&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;Z c #eeeeee&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., palette using '''1''' character codes''&lt;br /&gt;
:&amp;lt;tt&amp;gt;@ c #080808&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;. c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;............................................&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''truncated first row, each dot is a pixel with colour &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; as defined above.''&lt;br /&gt;
&lt;br /&gt;
This is about an XPM2 image with width 128, height 128, 64 colours, using one character per pixel.&lt;br /&gt;
One tool is known to use only '''a''' to '''p''' for 16 colours, switching to '''aa''' up to '''dp''' for 64 colours,&lt;br /&gt;
but still reading single character encodings for 64 colours, compare [[Base64]].&lt;br /&gt;
 &lt;br /&gt;
With more colours the codes use more characters, e.g. '''aa''' up to '''pp''' for 16*16=256 colours. This is less useful&lt;br /&gt;
for text editors, because a string '''ab''' could be actually the middle of two adjacent pixels '''dabc'''. Spaces are&lt;br /&gt;
allowed as colour code, see [[#External links|links]], but might be a bad idea depending on the used text editor. Without&lt;br /&gt;
control codes, space, and quote (needed in XPM1 and XPM3) 128-33-2=93 [[ASCII]] characters are available for single character&lt;br /&gt;
colour codes.      &lt;br /&gt;
&lt;br /&gt;
It's helpful if the converter from other formats to XPM can sort the palette from white to black, because one of the &lt;br /&gt;
reasons to edit an icon might be to get rid of antialiasing artefacts after a reduction of the number colours, adding&lt;br /&gt;
affected pixels to &amp;lt;tt&amp;gt;#000000&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; acting as transparency colour (the dots in the example).&lt;br /&gt;
&lt;br /&gt;
For XPM2 it's clear how many lines belong to the image, two header lines, the second header line announcing the number of&lt;br /&gt;
colour codes (64 lines in the example above) and rows (height 128 in the example above), e.g. 2+64+128=194 lines.&lt;br /&gt;
&lt;br /&gt;
The other styles are designed to be used as is in C sources, example:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_format 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_width 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_height 48&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_ncolors 2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;#define XFACE_chars_per_pixel 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_colors[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;a&amp;quot;, &amp;quot;#ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;b&amp;quot;, &amp;quot;#000000&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;};&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;static char *XFACE_pixels[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;&amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc., 48 rows with 48 pixels''.&lt;br /&gt;
&lt;br /&gt;
This is a black and white image in the first (1989) XPM format.&lt;br /&gt;
The source icon was in [[PNG]] format, and although it defined &amp;lt;tt&amp;gt;#ffffff&amp;lt;/tt&amp;gt; as&lt;br /&gt;
transparent, this detail was lost in the conversion. The&lt;br /&gt;
hex. RGB &amp;lt;tt&amp;gt;#123456&amp;lt;/tt&amp;gt; codes can be also replaced by known&lt;br /&gt;
colour names found in a &amp;quot;well known location&amp;quot; &amp;lt;tt&amp;gt;rgb.txt&amp;lt;/tt&amp;gt;,&lt;br /&gt;
where &amp;quot;well known location&amp;quot; depends on the operating &lt;br /&gt;
system and the used tools. The XPM &amp;quot;colour&amp;quot; name for transparency is '''none'''.&lt;br /&gt;
&lt;br /&gt;
Just for the records the same image in the other styles:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt;! XPM2&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;48 48 2 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;a c #ffffff&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;b c #000000&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;tt&amp;gt; /* XPM */&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; static char * XFACE[] = {&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;48 48 2 1&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;a c #ffffff&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;b c #000000&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt; &amp;quot;abaabaababaaabaabababaabaabaababaabaaababaabaaab&amp;quot;,&amp;lt;/tt&amp;gt;&lt;br /&gt;
:''etc.''&lt;br /&gt;
&lt;br /&gt;
The latter format is XPM3, the common format used&lt;br /&gt;
for the X Window System since about 1991. The '''c'''&lt;br /&gt;
means &amp;quot;colour&amp;quot;, it's possible to add '''m''' for&lt;br /&gt;
&amp;quot;monochrome&amp;quot; output, '''g''' for &amp;quot;grayscale&amp;quot;, and '''s''' for &amp;quot;symbolic&amp;quot;, &lt;br /&gt;
explaining what a defined colour is supposed to do.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;symbolic&amp;quot; feature allows to adjust colours&lt;br /&gt;
depending on the context where they are used, like&lt;br /&gt;
say &amp;lt;tt&amp;gt;s border c blue&amp;lt;/tt&amp;gt; could be adjusted on&lt;br /&gt;
a blue background.&lt;br /&gt;
&lt;br /&gt;
If the width, height, colours, and characters per&lt;br /&gt;
pixel line contains six instead of four numbers the&lt;br /&gt;
additional values indicate the coordinates of a&lt;br /&gt;
&amp;quot;hotspot&amp;quot;, '''0 0''' is the upper left corner&lt;br /&gt;
of a box containing the icon and the default. A&lt;br /&gt;
&amp;quot;hotspot&amp;quot; is used for mouse pointers and similar&lt;br /&gt;
applications.&lt;br /&gt;
&lt;br /&gt;
=== Comparison with XBM ===&lt;br /&gt;
Here's the same [[:image:Blarg.xbm.gif|image]] as shown on [[XBM]] in both formats, &lt;br /&gt;
the examples are complete images &amp;lt;tt&amp;gt;Blarg.xbm&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Blarg.xpm&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 #define blarg_xbm_width 16&lt;br /&gt;
 #define blarg_xbm_height 7&lt;br /&gt;
 static char blarg_xbm_bits[] = {&lt;br /&gt;
   0xec, 0xff, 0xea, 0xff, 0x6c, 0x32, 0xaa,&lt;br /&gt;
   0x5a, 0x6c, 0x3a, 0xff, 0x7f, 0xff, 0x9f};&lt;br /&gt;
Above is the XBM (183 bytes text), below the XPM2 (170 bytes), for 16*7 black and white pixels.&lt;br /&gt;
 ! XPM2&lt;br /&gt;
 16 7 2 1&lt;br /&gt;
 * c #ffffff&lt;br /&gt;
 . c #000000&lt;br /&gt;
 **..*...........&lt;br /&gt;
 *.*.*...........&lt;br /&gt;
 **..*..**.**..**&lt;br /&gt;
 *.*.*.*.*.*..*.*&lt;br /&gt;
 **..*..**.*...**&lt;br /&gt;
 ...............*&lt;br /&gt;
 .............**.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=JPEG&amp;diff=6375</id>
		<title>JPEG</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=JPEG&amp;diff=6375"/>
		<updated>2006-10-23T03:11:22Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* FourCCs: JPEG, CJPG&lt;br /&gt;
* Organization: [[ISO/IEC JTC1/SC29/WG1]] &amp;quot;Joint Photographic Experts Group&amp;quot; (JPEG)&lt;br /&gt;
* Organization: [[Independent JPEG Group]]&lt;br /&gt;
* Samples:&lt;br /&gt;
** CJPG: http://samples.mplayerhq.hu/V-codecs/CJPG/&lt;br /&gt;
&lt;br /&gt;
JPEG is a ubiquitous lossy or lossless image format.&lt;br /&gt;
&lt;br /&gt;
[[Category:Video Codecs]]&lt;br /&gt;
[[Category:Video FourCCs]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Image Formats]]&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=TIFF&amp;diff=6361</id>
		<title>TIFF</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=TIFF&amp;diff=6361"/>
		<updated>2006-10-20T23:26:37Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: Initial Copy from wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Flexible options == &lt;br /&gt;
TIFF is a flexible and adaptable file format. It can handle multiple images and data in a single file through the inclusion of &amp;quot;tags&amp;quot; in the file header. Tags can indicate the basic geometry of the image, such as its size, or define how the image data is arranged and whether various image compression options are used. For example, TIFF can be used as a container for JPEG and RLE (run-length encoding) compressed images. A TIFF file can also include a vector-based clipping path (an outline that crops or frames the main image). The ability to store image data in a lossless format makes TIFF files a useful method for archiving images. Unlike standard JPEG, TIFF files can be edited and resaved without suffering a compression loss. Other TIFF file options include multiple layers or pages.&lt;br /&gt;
&lt;br /&gt;
Although it is a widely accepted standard format today, when TIFF was first introduced, its extensibility led to compatibility problems. Programmers were free to specify new tags and options, but not all programs implemented support for all the tags that had been created. As a result the lowest common denominator soon became &amp;quot;the&amp;quot; TIFF, and even today the vast majority of TIFF files, and the code that reads them, are based on a simple 32-bit uncompressed image.&lt;br /&gt;
&lt;br /&gt;
TIFF does have an option to use LZW compression, a lossless data compression technique for reducing file size. &lt;br /&gt;
&lt;br /&gt;
Every TIFF file begins with a 2-byte indicator of byte order: &amp;quot;II&amp;quot; for little endian and &amp;quot;MM&amp;quot; for big endian byte ordering. The following 2 bytes represent the number 42. The number 42 was selected &amp;quot;for its deep philosophical significance.&amp;quot; The reading of 42 is dependent on the byte order indicated in the first 2 bytes. The entire file is read based on the indicated byte order.&lt;br /&gt;
&lt;br /&gt;
Byte order can cause compatibility issues between Apple Macintosh and Windows programs, which typically use different byte order for TIFF files. Some programs offer the option of saving in Mac or Windows byte order so files can be used across platforms.&lt;br /&gt;
== TIFF in document imaging ==&lt;br /&gt;
TIFF format is standard in document imaging and document management systems. In this environment it is normally used with CCITT Group IV 2D compression, which supports black-and-white (also called bitonal or monochrome) images. In high-volume environments, documents are typically scanned in black and white (rather than color or grayscale) to conserve storage capacity. An average A4 scan produces 30 kilobytes (KB) of data at 200 dpi (dots per inch resolution) and 50 KB of data at 300 dpi. 300 dpi is far more common than 200 dpi.&lt;br /&gt;
&lt;br /&gt;
Because TIFF format supports multiple pages, multi-page documents can be saved as single TIFF files rather than as a series of files for each scanned page.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Portable_Network_Graphics&amp;diff=6360</id>
		<title>Portable Network Graphics</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Portable_Network_Graphics&amp;diff=6360"/>
		<updated>2006-10-20T23:20:32Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: Initial submit copied from wikipedia&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===File header===&lt;br /&gt;
A PNG file starts with an 8-byte signature. The hexadecimal byte values are 89 50 4E 47 0D 0A 1A 0A. Each of the header bytes is there for a specific reason [http://www.libpng.org/pub/png/spec/1.1/PNG-Rationale.html#R.PNG-file-signature]:&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
!|Byte(s)&lt;br /&gt;
!style=&amp;quot;text-align:left&amp;quot;|Purpose&lt;br /&gt;
|-&lt;br /&gt;
|89&lt;br /&gt;
|Has the high bit set to detect transmission systems that do not support 8 bit data and to reduce the chance that a text file is mistakenly interpreted as a PNG, or visa versa.&lt;br /&gt;
|-&lt;br /&gt;
|50&amp;amp;nbsp;4E&amp;amp;nbsp;47&lt;br /&gt;
|In ASCII, the letters &amp;quot;'''PNG'''&amp;quot;, allowing a person to identify the format easily if it is viewed in a text editor.&lt;br /&gt;
|-&lt;br /&gt;
|0D&amp;amp;nbsp;0A&lt;br /&gt;
|A DOS style newline (CRLF) to detect DOS-UNIX line ending conversion of the data.&lt;br /&gt;
|-&lt;br /&gt;
|1A&lt;br /&gt;
|A byte that stops display of the file under DOS when the command TYPE has been used&lt;br /&gt;
|-&lt;br /&gt;
|0A&lt;br /&gt;
|A unix newline (LF) to detect UNIX-DOS line ending conversion.&lt;br /&gt;
|}&lt;br /&gt;
===&amp;quot;Chunks&amp;quot; within the file===&lt;br /&gt;
After the header come a series of chunks each of which conveys certain information about the image. Chunks declare themselves as ''critical'' or ''ancillary'', and a program encountering an ancillary chunk that it does not understand can safely ignore it.  This chunk-based structure is designed to allow the PNG format to be extended while maintaining compatibility with older versions.&lt;br /&gt;
&lt;br /&gt;
The chunks each have a header specifying their size and type. This is immediately followed by the actual data, and then the checksum of the data. Chunks are given a 4 letter case sensitive name. The case of the different letters in the name provides the decoder with some information on the nature of chunks it does not recognise.&lt;br /&gt;
&lt;br /&gt;
The case of the first letter indicates if the Chunk is essential or not. If the first letter is uppercase, the chunk is essential. If not, the chunk is ancillary. Essential chunks contain information that is necessary to read the file. If a decoder encounters an essential chunk it does not recognise, it must abort reading the file.&lt;br /&gt;
&lt;br /&gt;
The case of the second letter indicates if the chunk is &amp;quot;public&amp;quot; (either in the specification or the registry of special purpose public chunks) or &amp;quot;private&amp;quot; (not standardised). Uppercase is public and lowercase is private. This ensures that public and private chunk names can never conflict with each other. &lt;br /&gt;
&lt;br /&gt;
The third letter must be uppercase to conform to the PNG specification. It is reserved for future expansion.&lt;br /&gt;
&lt;br /&gt;
The case of the fourth letter indicates if a chunk is safe to copy by editors that do not recognise it. If lowercase the chunk may be safely copied regardless of the extent of modifications to the file. If uppercase it may only be copied if the modifications have not touched any critical chunks.&lt;br /&gt;
====Essential chunks====&lt;br /&gt;
A decoder must be able to interpret these to read and render a PNG file.&lt;br /&gt;
* IHDR must be the first chunk, it contains the header.&lt;br /&gt;
* PLTE contains the palette; list of colors.&lt;br /&gt;
* IDAT contains the image, which may be split among multiple IDAT chunks. Doing so increases filesize slightly, but makes it possible to generate a PNG in a streaming manner.&lt;br /&gt;
* IEND marks the image end.&lt;br /&gt;
&lt;br /&gt;
====Metadata chunks====&lt;br /&gt;
Other image attributes that can be stored in PNG files include gamma values, background color, and textual metadata information. PNG also supports color management through the inclusion of ICC color space profiles.&lt;br /&gt;
* bKGD gives the default background color. It is intended for use when there is no better choice available, such as in standalone image viewers (but not web browsers).&lt;br /&gt;
* cHRM gives the white balance.&lt;br /&gt;
* gAMA specifies gamma.&lt;br /&gt;
* hIST can store the histogram, or total amount of each color in the image.&lt;br /&gt;
* iCCP is an ICC color profile.&lt;br /&gt;
* iTXt contains international (UTF-8) text, compressed or not.&lt;br /&gt;
* pHYs holds the intended pixel size and/or aspect ratio of the image.&lt;br /&gt;
* sBIT (significant bits) indicates the color-accuracy of the source data.&lt;br /&gt;
* sPLT suggests a palette to use if the full range of colors is unavailable.&lt;br /&gt;
* sRGB indicates that the standard sRGB color space is used.&lt;br /&gt;
* tEXt can store text that can be represented in ISO 8859-1, with one name=value pair for each chunk.&lt;br /&gt;
* tIME stores the time that the image was last changed.&lt;br /&gt;
* tRNS contains transparency information. For indexed images, it stores alpha channel values for one or more palette entries. For truecolor and greyscale images, it stores a single pixel value that is to be regarded as fully transparent.&lt;br /&gt;
* zTXt contains compressed text with the same limits as tEXt.&lt;br /&gt;
&lt;br /&gt;
The lowercase first letter in these chunks indicates that they are not needed for the PNG specification. The lowercase last letter in some chunks indicates that they are safe to copy, even if the application concerned does not understand them.&lt;br /&gt;
===Colour depth===&lt;br /&gt;
PNG images can either use palette-indexed color or be made up of one or more channels (numerical values directly representing quantities about the pixels). When there is more than one channel in an image all channels have the same number of bits allocated per pixel (known as the bitdepth of the channel). Although the PNG specification always talks about the bitdepth of channels, most software and users generally talk about the total number of bits per pixel (sometimes also referred to as bitdepth or color depth). &lt;br /&gt;
&lt;br /&gt;
The number of channels will depend on whether the image is greyscale or color and whether it has an alpha channel. PNG allows the following combinations of channels: &lt;br /&gt;
* greyscale &lt;br /&gt;
* greyscale and alpha (level of transparency for each pixel)&lt;br /&gt;
* red, green and blue (rgb/truecolor)&lt;br /&gt;
* red, green, blue and alpha&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin: 1em auto 1em auto&amp;quot;&lt;br /&gt;
|+ PNG color options&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;|Type&lt;br /&gt;
!colspan=&amp;quot;5&amp;quot;|Bit depth per channel&lt;br /&gt;
|-&lt;br /&gt;
!1&lt;br /&gt;
!2&lt;br /&gt;
!4&lt;br /&gt;
!8&lt;br /&gt;
!16&lt;br /&gt;
|-&lt;br /&gt;
|indexed (color type 3)&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|-&lt;br /&gt;
|greyscale (color type 0)&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|greyscale &amp;amp; alpha&amp;lt;br /&amp;gt;(color type 4)&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|truecolor&amp;lt;br /&amp;gt;(RGB - color type 2)&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|-&lt;br /&gt;
|truecolor &amp;amp; alpha&amp;lt;br /&amp;gt;(RGBA - color type 6)&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{no}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|{{yes}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
With indexed color images, the palette is always stored at a depth of 8 bits per channel. The palette must not have more entries than the image bitdepth allows for but it may have fewer (so if an image for example only uses 90 colors there is no need to have palette entries for all 256).&lt;br /&gt;
&lt;br /&gt;
Indexed color PNGs are allowed to have 1, 2, 4 or 8 bits per pixel by the standard; greyscale images with no alpha channel allow for 1, 2, 4, 8 or 16 bits per pixel. Everything else uses a bitdepth per channel of either 8 or 16. The combinations this allows are given in the table above. The standard requires that decoders can read all supported color formats but many image editors can only produce a small subset of them.&lt;br /&gt;
===Transparency of image===&lt;br /&gt;
PNG offers a variety of transparency options. With truecolor and greyscale images either a single pixel value can be declared as transparent or an alpha channel can be added. For paletted images, alpha values can be added to palette entries. The number of such values stored may be less than the total number of palette entries, in which case the remaining entries are considered fully opaque.&lt;br /&gt;
&lt;br /&gt;
The scanning of pixel values for binary transparency is supposed to be performed before any color reduction to avoid pixels becoming unintentionally transparent. This is most likely to pose an issue for systems that can decode 16 bits per channel images (as they must to be compliant with the specification) but only output at 8 bits per channel (the norm for all but the highest end systems).&lt;br /&gt;
===Compression===&lt;br /&gt;
PNG uses a non-patented lossless data compression method known as deflation.  This method is combined with prediction, where for each image line, a ''filter method'' is chosen that predicts the color of each pixel based on the colors of previous pixels and subtracts the predicted color of the pixel from the actual color.  An image line filtered in this way is often more compressible than the raw image line would be, especially if it is similar to the line above (since deflate has no understanding that an image is a 2D entity, and instead just sees the image data as a stream of bytes).&lt;br /&gt;
===Interlacing===&lt;br /&gt;
PNG offers an optional 2-dimensional, 7-pass interlacing scheme&amp;amp;nbsp;&amp;amp;ndash; the Adam7 algorithm. This is more sophisticated than GIF's 1-dimensional, 4-pass scheme, and allows a clearer low-resolution image to be visible earlier in the transfer. However, as a 7-pass scheme, it tends to reduce the data's compressibility more than simpler schemes.&lt;br /&gt;
===Animation===&lt;br /&gt;
PNG does not offer animation. MNG is an image format that supports animation and is based on the ideas and some of the chunks of PNG but is a complex system and does not offer fallback to single image display like GIF does. APNG is another image format based on PNG that supports animation and is simpler than MNG. APNG offers fallback to single image display for PNG decoders that do not support APNG. However neither of these formats are widely supported.&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Talk:Main_Page&amp;diff=6117</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Talk:Main_Page&amp;diff=6117"/>
		<updated>2006-10-05T02:47:41Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Can we make some infos skeletons for the contributors and give links to the documentation of the wiki system and/or guide for how to write and which modification tags available?&lt;br /&gt;
&lt;br /&gt;
== source list ==&lt;br /&gt;
&lt;br /&gt;
http://www.digitalpreservation.gov/formats/fdd/browse_list.shtml&lt;br /&gt;
&lt;br /&gt;
have you seen this site? not sure its useful, has some information.&lt;br /&gt;
plus its .gov!&lt;br /&gt;
&lt;br /&gt;
-[[User:Compn|Compn]] 22:17, 21 September 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
: I'm sure I [http://multimedia.cx/eggs/ blogged] about that somewhere. If you can find a good place for it on the Wiki, be my guest. --[[User:Multimedia Mike|Multimedia Mike]] 12:20, 22 September 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
What about a section for image formats?--[[User:Dcsmith77|Dcsmith77]] 22:47, 4 October 2006 (EDT)&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
	<entry>
		<id>https://wiki.multimedia.cx/index.php?title=Talk:Main_Page&amp;diff=6116</id>
		<title>Talk:Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.multimedia.cx/index.php?title=Talk:Main_Page&amp;diff=6116"/>
		<updated>2006-10-05T02:46:53Z</updated>

		<summary type="html">&lt;p&gt;Dcsmith77: /* source list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Can we make some infos skeletons for the contributors and give links to the documentation of the wiki system and/or guide for how to write and which modification tags available?&lt;br /&gt;
&lt;br /&gt;
== source list ==&lt;br /&gt;
&lt;br /&gt;
http://www.digitalpreservation.gov/formats/fdd/browse_list.shtml&lt;br /&gt;
&lt;br /&gt;
have you seen this site? not sure its useful, has some information.&lt;br /&gt;
plus its .gov!&lt;br /&gt;
What about a section for image formats?&lt;br /&gt;
-[[User:Compn|Compn]] 22:17, 21 September 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
: I'm sure I [http://multimedia.cx/eggs/ blogged] about that somewhere. If you can find a good place for it on the Wiki, be my guest. --[[User:Multimedia Mike|Multimedia Mike]] 12:20, 22 September 2006 (EDT)&lt;/div&gt;</summary>
		<author><name>Dcsmith77</name></author>
	</entry>
</feed>