![]() |
Graustufe aus Farbwert
Vieles steht darüber im Forum geschrieben, aber nichts konnte mir weiterhelfen.
ganz einfache Frage, erwarte ganz unkomplizierte Lösung; Ich habe einen farbwert, und will den dafür passenden Graustufen (oder Schwarz-Weiss) Farbwert. Ich hab zum Beispiel folgende Funktion dafür geschrieben, leider ist sie mir etwas ZU Blödsinnig, und gibt zu wenig verschiedene Farbwerte zurück! Also er funktioniert nicht ganz korrekt, meines erachtens.
Delphi-Quellcode:
Und bitte schreibt nicht... DP suche.. wenn Ihr was WIRKLICH brauchbares in der Suche gefunden habt,
function TEButton.GetMonoColorValue(Color: TColor): TColor;
begin if (GetRValue(Color)>GetGValue(Color)) and (GetRValue(Color)>GetBValue(Color)) then Color := RGB(GetRValue(Color),GetRValue(Color),GetRValue(Color)) else if (GetGValue(Color)>GetRValue(Color)) and (GetGValue(Color)>GetBValue(Color)) then Color := RGB(GetGValue(Color),GetGValue(Color),GetGValue(Color)) else if (GetBValue(Color)>GetRValue(Color)) and (GetBValue(Color)>GetGValue(Color)) then Color := RGB(GetBValue(Color),GetBValue(Color),GetBValue(Color)); result := Color; end; dann könnt ihr ja den direkten Link mitgeben, das wäre auch schon toll... Oder gibt es die möglichkeit ein Canvas auf Graustufen einzustellen. z.B. Canvas.MonoColors := true oder son scheiss... |
Re: Graustufe aus Farbwert
Hallo,
normalerweise werden Farben so in Graustufen umgewandelt:
Delphi-Quellcode:
Gruß
Gray := Round(Blue * 0.114 + Green * 0.578 + Red * 0.299);
xaromz |
Re: Graustufe aus Farbwert
hmm
Image.Picture.Bitmap.Monocrome := true; Sowas? Frank |
Re: Graustufe aus Farbwert
Zitat:
Tja... andere Ideen Zitat:
|
Re: Graustufe aus Farbwert
Hallo,
Zitat:
Delphi-Quellcode:
Gruß
Farbe := rgb(Gray, Gray, Gray);
xaromz |
Re: Graustufe aus Farbwert
.:OOOPPPSSS:.
Sorry, mein Fehler! So funktioniert das natürlich... THX |
Re: Graustufe aus Farbwert
oder ohne RGB-Funktion.
Delphi-Quellcode:
PS: was für Multiplicatoren (die 0.xxx innerhalb ROUND) du verwendest ist eher Geschmackssache, da es sich um rein subjetive Werte handelt. (ich verwende z.B. auch etwas Andere) ^^
Color := Round(Blue * 0.114 + Green * 0.578 + Red * 0.299) * $010101;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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 by Thomas Breitkreuz