Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > За какое время было создано изображение


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

Код
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; 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)