16.11.2011, 15:11
|
Местный
|
|
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
|
|
Цитата:
Сообщение от monax_111
чето не выходит
|
http://msdn.microsoft.com/en-us/libr...S.85%29.aspxне
то поле заполнил
Код:
ABitmap:=TBitmap.Create;
ABitmap.LoadFromFile('D:\тим\шаг\000.bmp');
ADC:=CreateCompatibleDC(0);
ZeroMemory(@ABitmapInfo.bmiHeader, SizeOf(TBitmapInfoHeader));
ABitmapInfo.bmiHeader.biSize:=SizeOf(TBitmapInfoHeader);
//--------------------------------------
abitmapinfo.bmiHeader.biClrUsed:=0;(*это поле нужно для битмапов с палитрой , а в вашем случае должен быть 0*)
//--------------------------------------
abitmapinfo.bmiHeader.biBitCount:=24;(* а нужно вот это*)
//--------------------------------------
abitmapinfo.bmiHeader.biWidth:=1000;
abitmapinfo.bmiHeader.biHeight:=750;
abitmapinfo.bmiHeader.biPlanes:=1;
abitmapinfo.bmiHeader.biSizeImage:=2250000;
abitmapinfo.bmiHeader.biClrImportant:=0;
//-------------------------------------------
(* здесь должно быть указано количество пикселей на дюйм*)
abitmapinfo.bmiHeader.biXPelsPerMeter:=96;(* по горизонтали *)
abitmapinfo.bmiHeader.biYPelsPerMeter:=96;(* и по вертикали *)
SetLength(lpvBits, 2250000);
GetDIBits(ADC, ABitmap.Handle, 0, 750, lpvBits, ABitmapInfo, DIB_RGB_COLORS);
// lpvBits: array [0..ABitmapInfo.bmiHeader.biSizeImage-1] of R, G, B; - условно
DeleteDC(ADC) ;
ABitmap.Free;
чето я наверно не то рками делаю, массив из нулей((([/quote]
|