文件头格式是这样的
BitmapFileHeadType = Record
B,M : Char;
bfSize : longWord;
bfReserved1 : Word;
bfReserved2 : Word;
bfOffBits : LongWord;
end;其中:B:='M';
M:='M';
bfSize:=29114;
bfReserved1:=0;
bfReserved2:=0;
bfOffBits:=1078;
按理说保存后文件的16进制是
424D BC71 0000 0000 0000 3804 0000
但是我用Delphi6和delphi7写出来的确是
424D 0000 BC71 0000 0000 0000 3804 0000
为什么?
BitmapFileHeadType = Record
B,M : Char;
bfSize : longWord;
bfReserved1 : Word;
bfReserved2 : Word;
bfOffBits : LongWord;
end;其中:B:='M';
M:='M';
bfSize:=29114;
bfReserved1:=0;
bfReserved2:=0;
bfOffBits:=1078;
按理说保存后文件的16进制是
424D BC71 0000 0000 0000 3804 0000
但是我用Delphi6和delphi7写出来的确是
424D 0000 BC71 0000 0000 0000 3804 0000
为什么?
var
BH: TBitmapFileHeader;
BI: TBitmapInfoHeader;
begin
FillChar(BH, sizeof(BH), #0); //填充0空值
BH.bfType := $4D42;
BI.biSize := 40;
BI.biPlanes := 1;
BI.biBitCount := 16;
BI.biCompression := BI_BITFIELDS;
BI.biXPelsPerMeter := 0;
BI.biYPelsPerMeter := 0;
BI.biClrUsed := 0;
BI.biClrImportant := 0;
BH.bfSize := srcbmp.width * srcbmp.height + sizeOf(BI);
BI.biWidth := srcbmp.width;
BI.biHeight := srcbmp.Height;
BI.biSizeImage := (srcbmp.width * srcbmp.height) * 2;
BH.bfOffBits := sizeof(BI) + sizeof(BH) + 3 * sizeof(dword);
end;
asm
BSWAP EAX
end;