自己看VCL中TBitmap的代码,Paste过来一段
procedure TBitmap.ReadDIB(Stream: TStream; ImageSize: LongWord; bmf: PBitmapFileHeader);
begin
...
//你要的信息都在这里
end;
procedure TBitmap.ReadStream(Stream: TStream; Size: Longint);
var
Bmf: TBitmapFileHeader;
DIB: TDIBSection;
begin
FreeContext;
if Size = 0 then
begin
FillChar(DIB, sizeof(DIB), 0);
NewImage(0, 0, DIB, False);
end
else
begin
Stream.ReadBuffer(Bmf, sizeof(Bmf)); //读BMP文件头,检查是否BMP文件
if Bmf.bfType <> $4D42 then InvalidBitmap;
ReadDIB(Stream, Size - sizeof(Bmf), @Bmf);
end;
end;