<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to SBMFormat</title><link>https://sourceforge.net/p/pixelimage/wiki/SBMFormat/</link><description>Recent changes to SBMFormat</description><atom:link href="https://sourceforge.net/p/pixelimage/wiki/SBMFormat/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 21 Oct 2016 10:20:24 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/pixelimage/wiki/SBMFormat/feed" rel="self" type="application/rss+xml"/><item><title>SBMFormat modified by Kaban</title><link>https://sourceforge.net/p/pixelimage/wiki/SBMFormat/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -76,7 +76,7 @@

 * *sbwWidth* - image width
 * *sbwHeight* - image height
-* *sbwFormat* - bit count and colorspace
+* *sbwFormat* - bit count and colorspace (see [Color Formats](ColorFormats))
 * *sbwCompression* - reserved for future use
 * *sbwRowSize* - row size. Rows are 32-bit aligned.
 * *sbwDataSize* - pixel data size in bytes (height * sbwRowSize)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kaban</dc:creator><pubDate>Fri, 21 Oct 2016 10:20:24 -0000</pubDate><guid>https://sourceforge.net26af39cb3d09f91265a6066cd68b33bf5845ee28</guid></item><item><title>SBMFormat modified by Kaban</title><link>https://sourceforge.net/p/pixelimage/wiki/SBMFormat/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;SBM (Simple BitMap) is native format for PixelImage.&lt;/p&gt;
&lt;h3 id="layout"&gt;Layout&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;File Header&lt;/li&gt;
&lt;li&gt;Bitmap Header&lt;/li&gt;
&lt;li&gt;Palette entries (if any)&lt;/li&gt;
&lt;li&gt;Pixel data&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="structures"&gt;Structures:&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;File header&lt;/strong&gt;&lt;br/&gt;
&lt;em&gt;Delphi/Pascal:&lt;/em&gt;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;type&lt;/span&gt;
  &lt;span class="nt"&gt;TSBitmapFileHeader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;record&lt;/span&gt;
    &lt;span class="nt"&gt;dwID&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;dwSize&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;dwDataVersion&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;dwReserved1&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;dwReserved2&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;dwReserved3&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;dwReserved4&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;dwOffset&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="nt"&gt;end&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;em&gt;C/C++&lt;/em&gt;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;typedef struct _sbm_hdr_file {
    uint32_t dwID;
    uint32_t dwSize;
    uint32_t dwDataVersion;
    uint32_t dwReserved[4];
    uint32_t dwOffset;
} sbm_hdr_file_t;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;dwID&lt;/em&gt; - 32-bit file identifier&lt;/li&gt;
&lt;li&gt;&lt;em&gt;dwSize&lt;/em&gt; - file size&lt;/li&gt;
&lt;li&gt;&lt;em&gt;dwDataVersion&lt;/em&gt; - version of bitmap structure&lt;/li&gt;
&lt;li&gt;&lt;em&gt;dwReserved&lt;/em&gt; - reserved for future use&lt;/li&gt;
&lt;li&gt;&lt;em&gt;dwOffset&lt;/em&gt; - offset to pixel data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bitmap Info header&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Delphi/Pascal&lt;/em&gt;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;  &lt;span class="nt"&gt;TSBitmapInfoHeader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;record&lt;/span&gt;
    &lt;span class="nt"&gt;sbwWidth&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;word&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;sbwHeight&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;word&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;sbdwFormat&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;TSPixelFormat&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;sbcCompression&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;byte&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;sbdwRowSize&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;sbdwDataSize&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;cardinal&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;sbcColorUsed&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;word&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="nt"&gt;end&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;em&gt;C/C++&lt;/em&gt;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;typedef struct _sbm_hdr_bitmap {
    uint16_t sbwWidth;
    uint16_t sbwHeight;
    uint8_t sbwFormat;
    uint8_t sbwCompression;
    uint32_t sbwRowSize;
    uint32_t sbwDataSize;
    uint16_t sbwColorUsed;
} sbm_hdr_bitmap_t;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;sbwWidth&lt;/em&gt; - image width&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sbwHeight&lt;/em&gt; - image height&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sbwFormat&lt;/em&gt; - bit count and colorspace&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sbwCompression&lt;/em&gt; - reserved for future use&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sbwRowSize&lt;/em&gt; - row size. Rows are 32-bit aligned.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sbwDataSize&lt;/em&gt; - pixel data size in bytes (height * sbwRowSize)&lt;/li&gt;
&lt;li&gt;&lt;em&gt;sbwColorUsed&lt;/em&gt; - number of colors in palette&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Palette entries&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Each entry is 24-bit BGR color.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nt"&gt;tagRGBTRIPLE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nt"&gt;packed&lt;/span&gt; &lt;span class="nt"&gt;record&lt;/span&gt;
    &lt;span class="nt"&gt;rgbtBlue&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;Byte&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;rgbtGreen&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;Byte&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
    &lt;span class="nt"&gt;rgbtRed&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;Byte&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
  &lt;span class="nt"&gt;end&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;or&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;typedef struct _rgbtriple {
    uint8_t rgbtBlue;
    uint8_t rgbtGreen;
    uint8_t rgbtRed;
} rgbtriple_t;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Kaban</dc:creator><pubDate>Fri, 21 Oct 2016 10:04:31 -0000</pubDate><guid>https://sourceforge.neta33888ec34e45298a6fd4f2ac430ea2c491a03db</guid></item></channel></rss>