Показать сообщение отдельно
  #20  
Старый 16.11.2011, 15:11
icWasya icWasya вне форума
Местный
 
Регистрация: 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]
Ответить с цитированием