За какое время было создано изображение

Previous  Top  Next

    
 

Автор: Даниил Карапетян

WEB сайт: http://program.dax.ru

 

При нажатии на Button1 используется свойство Pixels, а при нажатии на Button2 - ScanLine. В заголовок окна выводится время в миллисекундах, за которое было создано изображение.

Code:

procedure TForm1.Button1Click(Sender: TObject);

var

t: cardinal;

x, y: integer;

bm: TBitmap;

begin

bm := TBitmap.Create;

bm.PixelFormat := pf24bit;

bm.Width := Form1.ClientWidth;

bm.Height := Form1.ClientHeight;

t := GetTickCount;

for y := 0 to bm.Height - 1 do

   for x := 0 to bm.Width - 1 do

   bm.Canvas.Pixels[x,y] := RGB(x+y, x-y, y-x);

Form1.Caption := IntToStr(GetTickCount - t);

Form1.Canvas.Draw(0, 0, bm);

end;

 

procedure TForm1.Button2Click(Sender: TObject);

var

t: cardinal;

x, y: integer;

bm: TBitmap;

p: PByteArray;

begin

bm := TBitmap.Create;

bm.PixelFormat := pf24bit;

bm.Width := Form1.ClientWidth;

bm.Height := Form1.ClientHeight;

t := GetTickCount;

for y := 0 to bm.Height - 1 do

begin

   p := bm.ScanLine[y];

   for x := 0 to bm.Width - 1 do

   begin

     p^[x*3] := x+y;

     p^[x*3+1] := x-y;

     p^[x*3+2] := y-x;

   end;

end;

Form1.Caption := IntToStr(GetTickCount - t);

Form1.Canvas.Draw(0, 0, bm);

end;

©Drkb::00775

http://delphiworld.narod.ru/

DelphiWorld 6.0