ビットマップ関連構造体・各種

  1. BITMAP
  2. BITMAPINFO
  3. BITMAPINFOHEADER
  4. BITMAPFILEHEADER
  5. BITMAPCOREHEADER
  6. BITMAPCOREINFO
  7. BITMAPV4HEADER
  8. BITMAPV5HEADER
  9. DIBSECTION
  10. RGBQUAD

BITMAP
ビットマップ

typedef struct tagBITMAP {
LONG bmType; // ==0
LONG bmWidth; // 画像横幅
LONG bmHeight; // 画像高さ
LONG bmWidthBytes; // 1行の幅のバイト数(CreateBitmapIndirect()ならWindowsが自動的に計算してくれる)
WORD bmPlanes; // カラープレーン
WORD bmBitsPixel; // ピクセルあたりのカラービット数
LPVOID bmBits; // ピクセルビットを指すポインタ
} BITMAP;

BITMAPINFO
ビットマップ・インフォ

typedef struct tagBITMAPINFO { // bmi 
BITMAPINFOHEADER bmiHeader; // ビットマップインフォヘッダ
RGBQUAD bmiColors[1]; // カラーテーブル配列1
} BITMAPINFO;

BITMAPINFOHEADER
ビットマップ・インフォ・ヘッダ

typedef struct tagBITMAPINFOHEADER{ // bmih 
DWORD biSize; // 構造体サイズ==40
LONG biWidth; // 画像横幅
LONG biHeight; // 画像高さ
WORD biPlanes; // ==1(Windows初期の名残)
WORD biBitCount; // カラービット数(1, 4, 8, 16, 24, 32)
DWORD biCompression; // 圧縮コード(BI_RGB, BI_RLE4, BI_RLE8, BI_BITFIELDSのいずれか)
DWORD biSizeImage; // イメージのバイト数
LONG biXPelsPerMeter; // 水平解像度
LONG biYPelsPerMeter; // 垂直解像度
DWORD biClrUsed; // カラーテーブルの数
DWORD biClrImportant; // 重要な色の数
} BITMAPINFOHEADER;

BITMAPCOREHEADER
ビットマップ・コア・ヘッダ

typedef struct tagBITMAPCOREHEADER { // bmch 
DWORD bcSize; // 構造体サイズ==12(DIB 情報ヘッダのバージョンにより相変?)
WORD bcWidth; // 画像横幅
WORD bcHeight; // 画像高さ
WORD bcPlanes; // ==1(Windows初期の名残)
WORD bcBitCount; // カラービット数(1, 4, 8, 16, 24, 32)
} BITMAPCOREHEADER;

BITMAPCOREINFO
ビットマップ・コア・インフォ

typedef struct _BITMAPCOREINFO {    // bmci 
    BITMAPCOREHEADER  bmciHeader;     // ビットマップコアヘッダ
    RGBTRIPLE         bmciColors[1];  // カラーテーブル配列1
} BITMAPCOREINFO;

●BITMAPFILEHEADER
ビットマップ・ファイル・ヘッダ

typedef struct tagBITMAPFILEHEADER { // bmfh 
WORD bfType; // =="BM"==0x424D
DWORD bfSize; // ファイル全体のサイズ(バイト単位)
WORD bfReserved1; // ==0(予約済)
WORD bfReserved2; // ==0(予約済)
DWORD bfOffBits; // ピクセルビットのオフセット
} BITMAPFILEHEADER;

●BITMAPV4HEADER
ビットマップ・バージョン4・ヘッダ

typedef struct {
DWORD bV4Size; // 構造体サイズ==108
LONG bV4Width; // 画像横幅
LONG bV4Height; // 画像高さ
WORD bV4Planes; // ==1
WORD bV4BitCount; // カラービット数(1, 4, 8, 16, 24, 32)
DWORD bV4V4Compression; // 圧縮コード(BI_RGB, BI_RLE4, BI_RLE8, BI_BITFIELDSのいずれか)
DWORD bV4SizeImage; // イメージのバイト数
LONG bV4XPelsPerMeter; // 水平解像度
LONG bV4YPelsPerMeter; // 垂直解像度
DWORD bV4ClrUsed; // カラーテーブルの数
DWORD bV4ClrImportant; // 重要な色の数
DWORD bV4RedMask; // 赤マスク
DWORD bV4GreenMask; // 緑マスク
DWORD bV4BlueMask; // 青マスク
DWORD bV4AlphaMask; // アルファマスク
DWORD bV4CSType; // カラースペースタイプ
CIEXYZTRIPLE bV4Endpoints; // XYZ値
DWORD bV4GammaRed; // 赤ガンマ値
DWORD bV4GammaGreen; // 緑ガンマ値
DWORD bV4GammaBlue; // 青ガンマ値
} BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER;

BITMAPV5HEADER
ビットマップ・バージョン5・ヘッダ

typedef struct { 
DWORD bV5Size; // 構造体サイズ==124
LONG bV5Width; // 画像横幅
LONG bV5Height; // 画像高さ
WORD bV5Planes; // ==1
WORD bV5BitCount; // カラービット数(1, 4, 8, 16, 24, 32)
DWORD bV5Compression; // 圧縮コード(BI_RGB, BI_RLE4, BI_RLE8, BI_BITFIELDSのいずれか)
DWORD bV5SizeImage; // イメージのバイト数
LONG bV5XPelsPerMeter; // 水平解像度
LONG bV5YPelsPerMeter; // 垂直解像度
DWORD bV5ClrUsed; // カラーテーブルの数
DWORD bV5ClrImportant; // 重要な色の数
DWORD bV5RedMask; // 赤マスク
DWORD bV5GreenMask; // 緑マスク
DWORD bV5BlueMask; // 青マスク
DWORD bV5AlphaMask; // アルファマスク
DWORD bV5CSType; // カラースペースタイプ
CIEXYZTRIPLE bV5Endpoints; // XYZ値
DWORD bV5GammaRed; // 赤ガンマ値
DWORD bV5GammaGreen; // 緑ガンマ値
DWORD bV5GammaBlue; // 青ガンマ値
DWORD bV5Intent; // 展開意図
DWORD bV5ProfileData; // プロファイルデータまたはファイル名
DWORD bV5ProfileSize; // 埋め込まれたデータかファイル名のサイズ
DWORD bV5Reserved;
} BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
#define BI_JPEG 4L

●CIEXYZ

typedef struct tagCIEXYZ {
FXPT2DOT30 ciexyzX;
FXPT2DOT30 ciexyzY;
FXPT2DOT30 ciexyzZ;
} CIEXYZ;

CIEXYZTRIPLE

typedef struct tagCIEXYZTRIPLE {
CICIEXYZ ciexyzRed ;
CICIEXYZ ciexyzGreen ;
CICIEXYZ ciexyzBlue ;
}CIEXYZTRIPLE ;

DIBSECTION
DIBセクション

typedef struct tagDIBSECTION { 
BITMAP dsBm; // BITMAP 構造体
BITMAPINFOHEADER dsBmih; // BITMAPINFOHEADER 構造体
DWORD dsBitfields[3]; // カラーマスク
HANDLE dshSection; // ファイルマッピングオブジェクトのハンドル
DWORD dsOffset; // ビットマップピクセルビットのオフセット
} DIBSECTION;

●FXPT16DOT16
●FXPT2DOT30

typedef long            FXPT16DOT16, FAR *LPFXPT16DOT16;
typedef long FXPT2DOT30, FAR *LPFXPT2DOT30;

●TIMECAPS

typedef struct {
UINT wPeriodMin; // 最小値
UINT wPeriodMax; // 最大値
} TIMECAPS;

●RGBQUAD

typedef struct tagRGBQUAD { // rgbq 
BYTE rgbBlue; // 青
BYTE rgbGreen; // 緑
BYTE rgbRed; // 赤
BYTE rgbReserved; // ==0
} RGBQUAD;


 戻る