Конференция "Media" » Доступ к пикселям растра через указатель. [WinXP]
 
  • PROgrammist (07.08.09 11:09) [0]
    Вот написал функцию по загрузке растра.
    Получил указатель на данные растра (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;
  • DVM © (07.08.09 12:47) [1]
    Посмотри как в FastDIB сделано
 
Конференция "Media" » Доступ к пикселям растра через указатель. [WinXP]
Есть новые Нет новых   [133926   +447][b:0][p:0]