我显示图形的程序如下:
hdc:为Image1.Canvas.Handle
Image:为采集到的指纹数据
Cols,Rows为指纹设备的大小
程序运行后不会显示任何图形,而且为什么加上程序中注释掉的部分,程序就会报错。
请各位指点。
procedure TForm1.PrintBitmap2(var hdc: Integer; image: Pointer; cols,
rows: Integer);
Var
bi:TBitMapInfo;
Palette_Size:Integer;
di:Integer;
i:Integer;
begin
Palette_Size:=256;
bi.bmiHeader.biSize:=SizeOf(TBitMapInfo);
bi.bmiHeader.biPlanes:=1;
bi.bmiHeader.biBitCount:=8;
bi.bmiHeader.biCompression:=BI_RGB;
bi.bmiHeader.biSizeImage:=0;
bi.bmiHeader.biXPelsPerMeter:=0;
bi.bmiHeader.biYPelsPerMeter:=0;
bi.bmiHeader.biClrUsed:=Palette_Size;
bi.bmiHeader.biClrImportant:=0;
bi.bmiHeader.biWidth:=Cols;
bi.bmiHeader.biHeight:=-Rows;
//ShowMEssage(VarToStr(hdc));
bi.bmiColors[0].rgbBlue:=0;
bi.bmiColors[0].rgbGreen:=0;
bi.bmiColors[0].rgbRed:=0;
bi.bmiColors[0].rgbReserved:=0;
{
For i:=0 to Palette_size-1 do
Begin
bi.bmiColors.rgbBlue:=1;
bi.bmiColors.rgbGreen:=1;
bi.bmiColors.rgbRed:=1;
bi.bmiColors.rgbReserved:=0;
End;
}
//ShowMEssage(VarToStr(hdc));
di:=StretchDIBits(hdc, 0, 0, Image1.Width,Image1.Height,0,0,cols,rows,image, bi, DIB_RGB_COLORS, SRCCOPY)
End;