带有DIB标头的Delphi DIB到TBitmap
我很恳请你帮我解决这个问题:
有一个包含DIB数据和DIBHeader的字节数组(
data: PByte
):
TDibHeader = record
size: Cardinal;
width: Integer;
height: Integer;
planes: Word;
bits: Word;
compression: Cardinal;
image_size: Cardinal;
x_res: Integer;
y_res: Integer;
n_colors: Cardinal;
important_colors: Cardinal;
end;
如何在保持CPU使用率低的同时将DIB转换为TBitmap?
我试过http://files.codes-sources.com/fichier.aspx?id=43989&f=GdipApi.pas没有成功。
我已将DIB分配给内存流:
DibMemStream.Clear;
DibMemStream.SetSize(header.image_size);
MoveMemory(DibMemStream.Memory,DibBuffer,header.image_size);
我想在Bitmap.LoadFromMemoryStream(DibMemStream)之前应该在某处写入DIB头。不知道在哪里。
有什么想法吗?
谢谢 !
没有找到相关结果
已邀请:
2 个回复
细屠截殴些
2)将BMPHeader +图像数据写入MemoryStream 3)使用TBitmap.LoadFromStream从MemoryStream加载TBitmap 你似乎已经填充了bmiHeader结构。添加bmfHeader和(可能)bmiColors。 这是我用于将256色灰度级内存中图像转换为TBitmap的代码(很多年前,抱歉,所以没有细节):
浆错