16.11.2011, 18:16
|
Прохожий
|
|
Регистрация: 13.11.2011
Сообщения: 11
Репутация: 10
|
|
Цитата:
Сообщение от angvelem
И что не получается?
Код:
var
Bitmap : TBitmap;
Bits : array of Byte;
...
var
bi : PBITMAPINFO;
begin
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile('C:\000.bmp');
GetMem(bi, SizeOf(TBitmapInfo));
try
FillChar(bi^, SizeOf(TBITMAPINFO), 0);
with bi^.bmiHeader do
begin
biSize := SizeOf(TBITMAPINFOHEADER);
biWidth := Bitmap.Width;
biHeight := Bitmap.Height;
biPlanes := 1;
biBitCount := 24;
biCompression := BI_RGB;
end;
SetLength(Bits, Bitmap.Width * Bitmap.Height * (bi^.bmiHeader.biBitCount shr 3));
GetDIBits(Bitmap.Canvas.Handle, Bitmap.Handle, 0, Bitmap.Height, Bits, TBitmapInfo(bi^), DIB_RGB_COLORS);
finally
FreeMem(bi, SizeOf(TBitmapInfo));
end;
finally
Bitmap.Free;
end;
end;
всё работает.
|
прям уличная магия))) все работает!!)) хотя я попробовал заменить bi на просто битмапинфо, но мне стал getmem ругаться когда я ему написал @bitmapinfo(((
|