bgra - Farbwerte von einer bestimmten Position auslesen

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

bgra - Farbwerte von einer bestimmten Position auslesen

Beitrag von Epcop »

Hallo,

gibt es eine einfache Möglichkeit, die Farbwerte eines Bildes einer bestimmten Position auszulesen?

Am liebsten wäre mir anhand von x und y Position.

Habe folgendes Beispiel gefunden:

Code: Alles auswählen

var
  image: TBGRABitmap;
  p: PBGRAPixel;
  n: integer;
begin
  image := TBGRABitmap.Create('bild.jpeg');
  p := image.Data;
  for n := image.NbPixels-1 downto 0 do begin
    //p^.green := 1;  // Farbwert Grün ändern
      ShowMessage(intToStr(p^.green)); // Farbwert Grün

    inc(p);
  end;
end  
So kann ich auf die einzelne Pixel zugreifen und red/green/blue auslesen. Aber mich interessiert das nur ab einer bestimmten position bzw. bereich des Bildes.

LG
Epcop

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: bgra - Farbwerte von einer bestimmten Position auslesen

Beitrag von Winni »

Hallo!

Ganz einfach:

Code: Alles auswählen

function getColor (img: TBGRAbitmap; x,y : Integer) : TBGRApixel;
begin
result := img.getPixel(x,y);
end;
Das TBGRApixel hat wiederum die Eigenschaften red, green, blue und alpha als byte.

Was Anfängern eine Hilfe ist:

Lies Dir mal ganz in Ruhe den Source der BGRAdefaultBitmap durch.
Dann bekoomst Du eine leichte Ahnung, was mit der BGRAbitmap alles möglich ist.

Winni

Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Re: bgra - Farbwerte von einer bestimmten Position auslesen

Beitrag von Epcop »

Danke für deine Hilfe

Antworten