WIL説明書(C++)  3.1.0
Bmp (ビットマップ)
ファイル読み込み仕様:
ビットマップファイルと画像オブジェクト(FVCL::Data::CFvImage)の仕様の相違は、ファイル読み込み時に下表のように変換されます。 カラー画像の場合は、読み込み先の画像オブジェクトのチャネル分割の有無を SetPixelMode メソッドによって制御できます。 詳細については、 Load メソッドの説明をご参照ください。
内容 ファイルのbpp 画像種別
(FVCL::ImageType)
画像情報
(FVCL::ImageInfo)
チャネル数 ピクセルモード
(FVCL::PixelMode)
2値 1 BIN GRAY 1 (無視されます)
濃淡 4,8 UC8 GRAY 1 (無視されます)
カラー 4,8 RGB32 RGB 1 Packing
カラー 16 RGB32 RGB 1 Packing
カラー 24 RGB24 RGB 1 Packing
カラー 32 RGB32 RGB 1 Packing
カラー 4,8,16,24,32 UC8 RGB 3 Unpacking
ファイル保存仕様:
ビットマップファイルと画像オブジェクト(FVCL::Data::CFvImage)の仕様の相違は、ファイル保存時に下表のように変換されます。 詳細については、 Save メソッドの説明をご参照ください。
内容 ファイルのbpp 画像種別
(FVCL::ImageType)
チャネル数
2値 1 BIN 1
濃淡 8 UC8 1
カラー 24 RGB24 1
カラー 32 RGB32 1
カラー 32 UC8 3

CFvImageFileBmp クラスは 非圧縮の Windows ビットマップ (下記のファイル構造) を対象にしています。 OS/2 ビットマップ、V4、V5 等は サポートしていません。

ファイル構造:
フィールド サイズ 内容
BITMAPFILEHEADER 14 ビットマップファイルヘッダ
BITMAPINFOHEADER 40 ビットマップ情報ヘッダ
RGBQUAD 0~ カラーテーブル
    画像データ
ビットマップファイルヘッダ:
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;

フィールド 内容 本クラスでの扱い
bfType 'BM'(0x4D42) ビットマップファイルであることを示すマジックナンバー  
bfSize   ファイルサイズ  
bfReserved1   予約  
bfReserved2   予約  
bfOffBits   ファイルの先頭からビットマップデータまでバイト数 この値が下記の合計値より大きい場合は、この値が示す位置から画像データを読み込みます。
・BITMAPFILEHEADER (14byte)
・BITMAPINFOHEADER (40byte)
・カラーテーブルサイズ (後述の biClrUsed をご参照ください)
ビットマップ情報ヘッダ:
typedef struct tagBITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;

フィールド 内容 本クラスでの扱い
biSize 40 (0x28) この構造体のサイズ 40 でない場合は中断します。(NOT_SUPPORTED を返します)
biWidth 1~ ビットマップの幅 (画素数).  
biHeight ±1~ 0<biHeight: ボトムアップ
0>biHeight: トップダウン
 
biPlanes 1 ターゲット・デバイスのプレーンの枚数 使用していません。
biBitCount 1,4,8,16,24,32 1画素当たりのビット数  
biCompression BI_RGB
BI_RLE8
BI_RLE4
BI_BITFIELDS
BI_JPEG
BI_PNG
ビットマップの圧縮方式 BI_RGB のみ対応しています。
BI_RGB でない場合は中断します。(NOT_SUPPORTED を返します)
biSizeImage 0~ ビットマップデータのサイズ (バイト数). 使用していません。
biXPelsPerMeter 0~ ターゲット・デバイスの水平解像度 (画素数/m) 使用していません。
biYPelsPerMeter 0~ ターゲット・デバイスの垂直解像度 (画素数/m) 使用していません。
biClrUsed 0~ カラーテーブルのエントリ数 1) 0<biClrUsed: RGBQUAD[biClrUsed]
2) 0=biClrUsed: RGBQUAD[2biBitCount]
※但し 2) は biBitCount が 1~8 の時です。
biClrImportant 0~ ビットマップを表示するのに必要な色数(0は全色) 使用していません。

Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2024年10月10日(木) 10時01分26秒 for WIL説明書(C++) by doxygen 1.8.11