上面抄错了,是这个 StretchDIBits :)
在 WINDOWS 下使用 GDI 绘图还是得做成 BITMAP 格式最快了。
下面是我从内存中(不是设备环境中)绘制一个 DIB 数据时用的函数:
procedure TDIB.Draw(DC: HDC; X, Y: Integer; Stretched: Boolean = False;
DstWidth: Integer = 0; DstHeight: Integer = 0);
begin
if Stretched then
StretchDIBits(DC, X, Y, DstWidth, DstHeight, 0, 0, FWidth, FHeight,
FPBits, FPBitmapInfo^, DIB_RGB_COLORS, SRCCOPY)
else
SetDIBitsToDevice(DC, X, Y, FWidth, FHeight, 0, 0, 0, FHeight, FPBits,
FPBitmapInfo^, DIB_RGB_COLORS);
end;