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
(戻り値)データを受け取るバイト配列lpbi
(ByVal 0&を設定すると、lpbiにビットマップのサイズと形式を返す
DIBの形式を指定するBITMAPINFO構造体uFlags
BITMAPINFO構造体のbmiColors値の形式を指定する定数戻り値
成功したとき 読み込んだスキャン行数備考
失敗したとき 0
この関数はデバイスコンテキストに関連付けられているuFlagsの定数
ビットマップのバイトデータを高速に取得することが可能である。
例えばこのデバイスコンテキストがメモリデバイスコンテキストにすれば
ビットマップをファイルに書き出すことが可能である。
DIB_PAL_COLORS = 1 DIBカラーは論理パレットによる
DIB_RGB_COLORS = 0 DIBカラーはRGBカラー値