Автор: Даниил Карапетян
WEB сайт: https://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 := 0to bm.Height - 1do for x := 0to bm.Width - 1do 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 := 0to bm.Height - 1do begin p := bm.ScanLine[y]; for x := 0to bm.Width - 1do 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; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!