![]() |
Problem mit Farbkonstanten beim Auslesen von Pixels
Hallo, ich hab folgendes Problem
Ich lese aus einem normalen TImage über Image.Canvas.Pixels[x,y] einen TColor-wert aus und daraus berechne ich dann einen Gamma wert und gebe diesen dann als pixel in graustufen wieder im Image aus, so dass dann ein Bild mit grautönen (gammawerten) entsteht, was ich weiter bearbeiten möchte, ... aber jetzt sind mir unzählige "verunreinigungen" im Bild aufgefallen, irgendwelche fehlerpixels, die da nicht hingehören und ich hab herraus gefunden, dass das damit zusammenhängt, dass bei TColor die Farbe manchmal nicht nach dem Schema $00FFFFFF sondern als Konstante clWhite ausgegeben wird, Wenn ich die TColor-werte in strings umwandele um sie dann über ihre Hex werte in R,G,B-Integer Zahlen zu konvertieren dann klappt das natürlich nicht, wenn da clIrgendwas steht und meine funktion versucht da Hexadezimale Ziffern zu erkennen . lange rede kurzer sinn, wie bekomme ich es hin, dass mir ausschließlich hexadezimale Farbwerte ausgegeben werden, wenn ich canvas.pixels[x,y] aufrufe. Habe keine lust eine Case Of abfrage für alle hunderttausend Farbkonstanten zu machen. vielleicht könnt ihr mir ja helfen vielen dank |
Re: Problem mit Farbkonstanten beim Auslesen von Pixels
|
Re: Problem mit Farbkonstanten beim Auslesen von Pixels
Aber nicht auf Pixels anwenden, denn dieses wird ja schon im RGB-Format zurückgegeben ... nur einige Farbkonstanten sind Spezialwerte, welche z.B. "nur" die Nummer der Farbe und nicht die Farbe selber enthalten.
Delphi-Quellcode:
Image.Canvas.Pixels[x,y] := ColorToRGB(cl...);
|
Re: Problem mit Farbkonstanten beim Auslesen von Pixels
Zitat:
|
Re: Problem mit Farbkonstanten beim Auslesen von Pixels
Das es kein Problem gibt, wenn es auf Pixels angewendet würde ist klar, es wäre nur ein "unnötiger" Funktionsaufruf,
aber wenn er es NUR auf Pixels anwendet, dann schon :zwinker: Dieses wäre ja schließtlich das Selbe, wie wenn man ColorToRGB wegließe:
Delphi-Quellcode:
ColorToRGB(Image.Canvas.Pixels[x,y]) := cl...;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz