Avatar billede delphidaner Nybegynder
15. august 2000 - 13:38 Der er 1 kommentar og
1 løsning

Langsom TCanvas.Pixels

Jeg er ved at udvikle et program, hvori jeg har brug for at læse og skrive en masse pixels på et billede i sekundet. Jeg bruger et TImage-objekt til at vise det på formen.

Men: Jeg bruger TImage.Pixels til at læse og skrive til billedet og det går ALT for langsomt. Det tager f.eks. mange sekunder at læse/skrive alle pixels i et 300x300 bitmap-billede.

Hvordan kan man gøre det hurtigere?
Avatar billede lrj Nybegynder
15. august 2000 - 14:01 #1
Det er sikkert fordi billedet \"refreshes\" efter hver pixel - hvad kommandoen hedder til at lave flere updates kan jeg desværre ikke huske, men det var da noget at gå efter. Når du så er færdig med din opdatering, laver du så en Invalidate.
Avatar billede pellelil Nybegynder
15. august 2000 - 14:13 #2
Du skal ikke bruge pixels det ER for langsom. Brug i stedet scanline. Flg er fra Delphi\'s hjælp:
<SNIP>
procedure TForm1.Button1Click(Sender: TObject);

// This example shows drawing directly to the BitMap
var
  x,y : Integer;
  BitMap : TBitMap;
  P : PByteArray;
begin
  BitMap := TBitMap.create;
  try
    BitMap.LoadFromFile(\'..\\Images\\Splash\\256color\\factory.bmp\');
    for y := 0 to BitMap.height -1 do
    begin
      P := BitMap.ScanLine[y];
      for x := 0 to BitMap.width -1 do
        P[x] := y;
    end;
  Canvas.draw(0,0,BitMap);

  finally
    BitMap.free;
  end;
end;
<\\SNIP>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester