AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Graustufe aus Farbwert

Ein Thema von cherry · begonnen am 26. Jun 2006 · letzter Beitrag vom 26. Jun 2006
Antwort Antwort
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#1

Graustufe aus Farbwert

  Alt 26. Jun 2006, 10:31
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:
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;
Und bitte schreibt nicht... DP suche.. wenn Ihr was WIRKLICH brauchbares in der Suche gefunden habt,
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...
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Graustufe aus Farbwert

  Alt 26. Jun 2006, 10:35
Hallo,

normalerweise werden Farben so in Graustufen umgewandelt:
Gray := Round(Blue * 0.114 + Green * 0.578 + Red * 0.299); Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Graustufe aus Farbwert

  Alt 26. Jun 2006, 10:38
hmm

Image.Picture.Bitmap.Monocrome := true;

Sowas?

Frank
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#4

Re: Graustufe aus Farbwert

  Alt 26. Jun 2006, 10:44
Zitat von xaromz:
normalerweise werden Farben so in Graustufen umgewandelt:
Gray := Round(Blue * 0.114 + Green * 0.578 + Red * 0.299);
Funktioniert eben nicht. Zb clYellow wird dann irgendwie ein Rot-ton...
Tja... andere Ideen

Zitat von Mavarik:
Image.Picture.Bitmap.Monocrome := true;
Ne, ich hab ja ne Canvas, kein Image!
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Graustufe aus Farbwert

  Alt 26. Jun 2006, 10:47
Hallo,
Zitat von cherry:
Zitat von xaromz:
normalerweise werden Farben so in Graustufen umgewandelt:
Gray := Round(Blue * 0.114 + Green * 0.578 + Red * 0.299);
Funktioniert eben nicht. Zb clYellow wird dann irgendwie ein Rot-ton...
Tja... andere Ideen
Selbstverständlich funktioniert das. Du bekommst den Grauwert ja als 1 Byte und nicht als TColor; Du musst also den Wert einer Farbe zuweisen:
Farbe := rgb(Gray, Gray, Gray); Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#6

Re: Graustufe aus Farbwert

  Alt 26. Jun 2006, 10:52
.:OOOPPPSSS:.

Sorry, mein Fehler!
So funktioniert das natürlich... THX
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

Re: Graustufe aus Farbwert

  Alt 26. Jun 2006, 11:04
oder ohne RGB-Funktion.

Color := Round(Blue * 0.114 + Green * 0.578 + Red * 0.299) * $010101; 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) ^^
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz