|
透明度付 BMP のフォーマット(1)Transparent BMP file format(1)Skymaker の出力している透明度付 BitMap (透過BMP) のバイナリフォーマットは以下の通りです。 なお、DWORD (4 byte) は、下位バイトが先に記録される Intel フォーマットです。 Skymaker outputs following bit map (BMP) with transparency, when 'WT' command assigned. DWORD data are recorded in LSB-first (Intel integer) format. 0000 'B' 0001 'M' 0002 DWORD File Length // = (width)*(height)*4 + 134 0006 00 00 // reserved 1 0008 00 00 // reserved 2 000A 86 00 00 00 // bit map start address (=134) 000E 6C 00 00 00 // Windows 95 type bit map (BITMAPV4) 0012 DWORD Width (X) // = (width) 0016 DWORD Height (Y) // = (height) 001A 01 00 // plane (=1) 001C 20 00 // bits/pixel (=32) 001E 03 00 00 00 // compression type (=3: BI_BITFIELDS) 0022 00 00 00 00 // N/A (compressed bitmap data size) (=0) 0026 FF 00 00 00 // horizontal resolution (pixel/meter)) (=0xFF) 002A FF 00 00 00 // vertical resolution (pixel/meter)) (=0xFF) 002E 00 00 00 00 // N/A (number of colors) (=0) 0032 00 00 00 00 // N/A (number of important colors) (=0) 0036 FF 00 00 00 // bit mask (red) 003A 00 FF 00 00 // bit mask (green) 003E 00 00 FF 00 // bit mask (blue) 0042 00 00 00 FF // bit mask (alpha) 0046 'B' // = LCS_sRGB 0047 'G' 0048 'R' 0049 's' 004A 00 00 00 00 // CIE RGB-XYZ table 3*3*4 bytes 004E 00 00 00 00 0052 00 00 00 00 0056 00 00 00 00 005A 00 00 00 00 005E 00 00 00 00 0062 00 00 00 00 0066 00 00 00 00 006A 00 00 00 00 006E 01 00 00 00 // gamma (red) 0072 01 00 00 00 // gamma (green) 0076 01 00 00 00 // gamma (blue) 007A FF 00 00 00 // (red) 007E 00 FF 00 00 // (green) 0082 00 00 FF 00 // (blue) // (bit map follows ...) 0086 Red (00-FF) at (x,y)=(0,height-1) 0087 Green (00-FF) at (x,y)=(0,height-1) 0088 Blue (00-FF) at (x,y)=(0,height-1) 0089 Alpha (00-FF) at (x,y)=(0,height-1) : : : : (repeated (width)*(height) times ...) (end of file) 上記は、Win32 SDK の、BITMAPV4 (Windows 95 version) の定義に従っています。 (The above shows the format of the BMP files actually output by PaintBrush on Windows 98, and is the dump list of a BMP file in BITMAPV4 (Windows 95 version) format defined in Win32 SDK.) ビットマップは、左下を先頭に、左から右、下から上の順で、格納されます。 Windows 3.1 形式では B, G, R 順が標準ですが、本フォーマットでは R, G, B, A の順です。 必ず 4 byte の倍数となるため、1水平ラインごとの終端処理は特に不要となっています。 (Each line is recorded in left-to-right order, and the whole bitmap is recorded in bottom-to-top order. In this format, each pixel is recorded in R-G-B-A byte order, in contrast to the well-known Windows 3.1 BMP format (in which each pixel was recorded in B-G-R byte order). In this format, each line naturally becomes 4-byte aligned, then no padding is necessary.) BITMAPV4、BITMAPV5 形式 BMP は、一時期 Windows Update された Windows 98 ペイントブラシのバグによって生成されていました。 また、Windows 98 付属の Imaging によって、透明度付 BITMAPV5 形式 BMP が生成されていました。 また、 「BitMap の極み」(希葉 竜胆 氏)※ で出力される透明度付 BMP ファイルも上記と同じフォーマットでした。 (※2021.11.3 リンク先サーバ終了) BITMAPV4 形式 BMP ファイルについては、Win32 SDK では運用方法が不明瞭なデータ部分があり (BITMAPV4HEADER のヘッダ構造については完全な定義有り)、 本 Skymaker の透明度付 BMP は、これらの BITMAPV4・BITMAPV5 形式の実際の BMP ファイルを逆解析したフォーマットに従って生成しています。 〜 補足:
もし、不具合等みつかりましたら、サポートへご連絡ください。 |