Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Scanline zeichnet nur einmal

  Alt 21. Mai 2007, 02:15
Zitat von Sunlight7:
Ich frag mich grad, wie das beim 1. mal zeichnen gehen soll?
Du zeichnest ja nur die Pixel in der 1. Spalte.
Nein, tut er nicht. Siehe folgendes...

Zitat von Sunlight7:
inc(pix); Bei einem Pointer net grad zu empfehlen
Und wie das zu empfehlen ist. Was macht Inc()? Inc() erhöht den Pointerwert um SizeOf(PointerType^). Sprich: Er erhöht den Pointer um die Grösse von TRGBTriple und somit schiebt er den Zeiger genau einen Pixel weiter (3 Bytes).

Der Code an sich ist so vollkommen korrekt - und deutlich performanter als dein ständiger neuer Indexzugriff auf lLine. Dort muss der Index errechnet werden und neu zugegriffen werden. Auch hat diese Methode den Nachteil, dass die meist mit einem Maximalwert definierten Byte Arrays bei deutlich breiteren Bildern "die Puste ausgeht" und es zu einem Bereichsprüfungsfehler kommt.
  Mit Zitat antworten Zitat