Цитата(mniip @ 9.8.2011, 13:49 ) | почему же когда я делаю вот так: получается в сотни тысяч раз медленнее? |
А потому же, почему чтение файла посимвольно в тысячи раз медленнее чем по несколько кБ. Решение аналогичное.
| Код | procedure TForm1.Button1Click(Sender: TObject); var p:pointer; i:integer; bm:tbitmap; line:integer; begin bm:=tbitmap.Create; bm.Monochrome:=false; bm.PixelFormat:=pf24bit; bm.Width:=form1.Width; bm.Height:=form1.Height; line:=trunc(bm.Height/2); p:=bm.ScanLine[line]; for i:=25 to form1.Width-25 do begin pinteger(cardinal(p)+i*3)^:=rgb(130,255,150); //2 для pf16bit,3 для pf24bit, 4 для pf32bit end;
form1.Canvas.Draw(0,0,bm);
end;
|
Дальше сам разберешся
|