Entwickler-Ecke

Multimedia / Grafik - Pointer bei Scanline


Eritacus - Mi 19.01.11 20:22
Titel: Pointer bei Scanline
Hallo zusammen,

seit einiger Zeit benutze ich Scanline mit Erfolg. Ich kann ganze Bitmaps oder auch Teile davon
gezielt bearbeiten oder auslesen. Bisher nehme ich dafür nur Inc(p) oder Dec(p), was ziemlich umständlich ist.

ABER:
1. Wie kann ich den Pointer sofort auf eine bestimmte Stelle setzen (gewissermaßen adressieren)?
2. Wie erhalte ich die aktuelle Position des Pointers?

Weiß jemand Rat?

Gruß
Eritacus


jaenicke - Mi 19.01.11 20:54

user profile iconEritacus hat folgendes geschrieben Zum zitierten Posting springen:
1. Wie kann ich den Pointer sofort auf eine bestimmte Stelle setzen (gewissermaßen adressieren)?
Einfach den gewünschten Offset-Wert als zweiten Parameter an Inc/Dec übergeben oder direkt mit dem Pointer rechnen.

user profile iconEritacus hat folgendes geschrieben Zum zitierten Posting springen:
2. Wie erhalte ich die aktuelle Position des Pointers?
Anfang der Zeile merken und vom aktuellen Wert abziehen.

Zudem kannst du dir auch die Differenz zweier Zeilen merken und auch damit von der ersten Zeile ausgehend direkt rechnen.


bummi - Mi 19.01.11 20:59

oder direkt durchgreifen
Beispiel für pf24bit

Delphi-Quelltext
1:
2:
type
  pRGBTripleArray = ^TRGBTripleArray;


>>


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
            with pRGBTripleArray(Image1.Picture.Bitmap.ScanLine[Y])[X] do
              begin
                 rgbtred := 0;
                 rgbtgreen :=0;
                 rgbtblue := 0;
              end


Eritacus - Sa 22.01.11 08:21

Hallo,

ich danke Euch beiden, hat geholfen!
Manchmal fehlen einem die einfachsten Dinge...

Gruß