![]() |
Farbe in SW umwandeln
Hi,
ich möchte ein kleines Programm schreiben, welches das Verhältnis von hell/dunkel eines Bildes bestimmt (- ich möchte bestimmen wieviel Prozent einer Seite bedruckt wird, das Bild dann man ja z.B. einscannen...). Die Grenze zwischen hell und dunkel soll einstellbar sein. Dazu habe ich mir überlegt, dass ich die Farben in Schwarz/ Weiß umwandeln will, dann muss ich ja nur eine "Stelle" eines TColor-Wertes bestimmen, da die Farben ja alle den gleichen anteil haben. Dann möchte ich jeden Pixel des Bildes überprüfen, ob er heller oder dunkler als die Grenze ist und schon habe ich das Verhältnis. Meine Frage: Wie wandel ich eine TColor-Farbe in SW um? Gruß Ben P.S.: Habe nichts passendes gefunden. Mmmhh, wie wäre es mit dem Mittelwert zwischen den drei Farbwerten... ist das der richtige Weg? [edit]Ausprobieren mit PhotoImpact ergab, dass es anscheinend nicht der Mittelwert ist. |
Re: Farbe in SW umwandeln
Die Helligkeit einer Farbe ist der gewichtete Mittelwert:
Delphi-Quellcode:
Grün wird vom Auge deutlich heller wahrgenommen als Blau oder Rot.
function Intensity(Color: TColor): Integer;
begin Color := ColorToRGB(Color); Result := GetBValue(Color) * 21 // Blue + GetGValue(Color) * 174 // Green + GetRValue(Color) * 61; // Red Result := Result shr 8; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 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