VB初心者です。どなたかご教授をお願いします。
VB2005を使用しています。
8Bitのモノクロ画像を高速で表示しようとしています。
しかしうまく表示できません。
カラーテーブルの値を変更する…。までは調べたのですが
SetDIBColorTable関数の戻り値が"0"となります。
*コード*
Dim bmpInfo As BITMAPINFOHEADER
Dim bmiColors(255) As RGBQUAD
bmpInfo.biBitCount = 8
bmpInfo.biClrImportant = 0
bmpInfo.biClrUsed = 0
bmpInfo.biCompression = 0
bmpInfo.biHeight = 480
bmpInfo.biPlanes = 1
bmpInfo.biSize = 40 ' SizeOf(BITMAPINFOHEADER)
bmpInfo.biSizeImage = 307200
bmpInfo.biWidth = 640
bmpInfo.biXPelsPerMeter = 0
bmpInfo.biYPelsPerMeter = 0
’カラーパレットを変更
For i = 0 To 255
bmiColors(i).rgbBlue = i
bmiColors(i).rgbGreen = i
bmiColors(i).rgbRed = i
bmiColors(i).rgbReserved = 0
Next i
SetDIBColorTable(hdc, 0, 255, bmiColors(0))
↑戻り値が0となってしまします。
皆様、よろしくお願いします。
ここは、VB6 以前用です。
VB.NET ならば、VB.NET 掲示板の方でお願いします。
以下の3点をチェックしてください。
1、hDC には CreateCompatibleDC の戻り値を指定していますか?
2、その hDC は、CreateDIBSection の戻り値を SelectObject して
おいてありますか?
3、CreateDIBSection で作った DIB は 8bits color の DIB になっていますか?
申し訳ありませんでした。
VB.NET 掲示板へ移動します。
とりあえず、解決を押します。
ツイート | ![]() |