Einzelnen Beitrag anzeigen

tapete

Registriert seit: 13. Jul 2007
7 Beiträge
 
Turbo Delphi für Win32
 
#1

ScanLine anwenden, bzw die Hilfe verstehen

  Alt 19. Jul 2007, 11:01
Ich habe folgendes Problem. Ich will in einer Bitmap die Farbwerte jedes Pixels auslesen lassen. Das funktioniert auch mittels der Codeteile, die ich in 2 Tutorials gefunden habe. Ich verstehe aber nicht, warum es funktioniert und wie man mit der Hilfe von Delphi, die das ja ermöglichen sollte, alleine darauf kommt.


Also in meinem Programm habe ich einen Typ:
PixArray = Array [1..3] of Byte; in einer Procedure wird ein Zeiger auf einen Speicherbereich vom obigen Typ erstellt:
Delphi-Quellcode:
  var
  p: ^PixArray;

Weiter unten dann das Arbeiten mit ScanLine:

p:= Bild.ScanLine[h];
Mein Problem ist, woher weiß ich, was p für ein "Variablentyp" sein muß, also ein Zeiger auf einen Speicherbereich der Art: Array [1..3] of Byte


In der Hilfe finde ich nur:

Zitat:
TBitmap.ScanLine Eigenschaft

Ermöglicht einen indizierten, zeilenweisen Zugriff auf Pixel.

Klasse
TBitmap

Syntax


[ Delphi] property ScanLine: Pointer read GetScanline;


Beschreibung
ScanLine wird nur bei DIBs (Device Independent Bitmaps) für Bildbearbeitungsprogramme verwendet, die Low-Level-Operationen auf Pixelebene durchführen.

Daraus kann ich das nicht schlußfolgern. Und sich den Code immer aus Tutorials zusammensuchen, ist nicht sehr elegant.

Sorry für möglicherweise vorhandene Dummheit.
  Mit Zitat antworten Zitat