GetDIBits

機能
DIBのピクセルデータを取得する
Declare Function GetDIBits Lib "gdi32.dll" _
(ByVal hdc As Long, ByVal hbmp As Long, ByVal uStartScan As Long, _
ByVal cScanLines As Long, lpvBits As Any, lpbi As BITMAPINFO, _
ByVal uUsage As Long) As Long
Declare Function GetDIBits Lib "gdi32.dll" _
(ByVal hdc As Integer, ByVal hbmp As Integer, ByVal uStartScan As Integer, _
ByVal cScanLines As Integer, lpvBits As Integer, lpbi As BITMAPINFO, _
ByVal uUsage As Integer) As Integer

int GetDIBits(
HDC hdc,
HBITMAP hbmp,
UINT uStartScan,
UINT cScanLines,
LPVOID lpvBits,
LPBITMAPINFO lpbi,
UINT uUsage
);

System.Drawing.Bitmap.LockBits
引数
hdc

デバイスコンテキストのハンドル
hbmp
ビットマップのハンドル
uStartScan
取得する最初のスキャン行のインデックス(通常0)
cScanLines
取得するスキャン行
lpvBits
(戻り値)データを受け取るバイト配列
(ByVal 0&を設定すると、lpbiにビットマップのサイズと形式を返す
lpbi
DIBの形式を指定するBITMAPINFO構造体
uFlags
BITMAPINFO構造体のbmiColors値の形式を指定する定数
戻り値
成功したとき            読み込んだスキャン行数
失敗したとき            0
備考
この関数はデバイスコンテキストに関連付けられている
ビットマップのバイトデータを高速に取得することが可能である。
例えばこのデバイスコンテキストがメモリデバイスコンテキストにすれば
ビットマップをファイルに書き出すことが可能である。
uFlagsの定数

DIB_PAL_COLORS = 1       DIBカラーは論理パレットによる
DIB_RGB_COLORS = 0       DIBカラーはRGBカラー値