-
Вот написал функцию по загрузке растра. Получил указатель на данные растра (Data) ,и как мне теперь установить цвет заданной точке через этот указатель? Что-то на подобие Canvas.Pixels[x, y].
Function Load(const FileName: string): boolean; Var DC : HDC; Data : PByteArray; Size : integer; Bmp : HBITMAP; Info : TDIBSection; InfoB: TBitmapInfo; begin Bmp:= LoadImage(0, PChar(FileName), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE or LR_CREATEDIBSECTION);
GetObject(Bmp, SizeOf(Info), @Info);
InfoB.bmiHeader:= Info.dsBmih;
Size:= Info.bmiHeader.biSizeImage;
GetMem(Data, Size);
DC:= CreateCompatibleDC(0); Try If (DC = 0) then begin Result:= False; Exit; end;
GetDIBits(DC, Bmp, 0, InfoB.bmiHeader.biHeight, Data, InfoB, DIB_RGB_COLORS);
(* В Data хранятся данные о растре *)
(* ?????? *)
Result:= True; Finally FreeMem(Data); ReleaseDC(0, DC); DeleteDC(DC); end; End;
-
Посмотри как в FastDIB сделано
|