![]() |
RGB <--> HLS <--> HSV
Ich bin noch Anfänger und weiß gar nicht so recht, wie ich bei meinem Programm anfangen soll.
Es soll ein Feld zu sehen sein, dass mit einer Farbe gefüllt wird. Daneben sollen Scrollbars sein, mit denen die jeweiligen Farbwerte eingegeben werden können. Wenn nun in ein Farbwertsystem ein Wert eingeben wird (nicht als Zahl, sondern mit einem Schieberegler), dann sollen sich auch die Schieberegler der anderen Farbwertsysteme ändern und natürlich auch die angezeigte Farbe. Soweit verständlich? Ich steh irgendwie total aufm Schlauch. Schonmal: Danke. :) P.S.: Muss das ganze mit "Borland Delphi 5" zusammenbasteln... |
Re: RGB <--> HLS <--> HSV
Hi,
fürs erste mal bloß ein paar Suchbegriffe: ![]() ![]() ![]() ![]() ![]() Damit dürfte schon einiges zu machen sein :) Sag bescheid, wenn ein konkretes Problem auftaucht :stupid: edit: Statt TScrollBar eignet sich evtl. eine TTrackBar besser :stupid: Gruß Stephan :dance: |
Re: RGB <--> HLS <--> HSV
Vielleicht ein bischen overpowered, aber die JVCL enthaelt TJvFullColor Dialoge.
Die koennen Farbraeume handhaben. |
Re: RGB <--> HLS <--> HSV
Zitat:
|
Re: RGB <--> HLS <--> HSV
ich haue mal noch die Unit GraphUtil rein, da sind schon ein paar Proc/Func zum Umrechnen der Farbe!
|
Re: RGB <--> HLS <--> HSV
Liste der Anhänge anzeigen (Anzahl: 1)
ich habe jetzt ein wenig gebastelt und folgendes erstellt:
Delphi-Quellcode:
damit zeigt mir mein programm erstmal die farben an (in einem tform-feld).
//SCROLLBALKEN ROT
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin label1.caption:=inttostr(scrollbar1.Position ); //Position ausgeben (Zahl) Farbfeld.Brush.Color:=StrToInt('$'+((inttohex(scrollbar3.Position,2)+ //Blau-Anteil inttohex(scrollbar2.Position,2)+ //Grün-Anteil inttohex(scrollbar1.Position,2)))); // Rot-Anteil end; //SCROLLBALKEN GRÜN procedure TForm1.ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin label2.caption:=inttostr(scrollbar2.Position ); //Position ausgeben (Zahl) Farbfeld.Brush.Color:=StrToInt('$'+((inttohex(scrollbar3.Position,2)+ //Blau-Anteil inttohex(scrollbar2.Position,2)+ //Grün-Anteil inttohex(scrollbar1.Position,2)))); // Rot-Anteil end; //SCROLLBALKEN BLAU procedure TForm1.ScrollBar3Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin label3.caption:=inttostr(scrollbar3.Position ); //Position ausgeben (Zahl) Farbfeld.Brush.Color:=StrToInt('$'+((inttohex(scrollbar3.Position,2)+ //Blau-Anteil inttohex(scrollbar2.Position,2)+ //Grün-Anteil inttohex(scrollbar1.Position,2)))); // Rot-Anteil end; kann man die drei prozeduren irgendwie zusammen fassen? weil nun muss es ja mit der umrechnung weiter gehen. und da isses bissl umständlich jedesmal in ne einzelne prozedur zu rennen, oder? wie kann ich es jetzt machen, dass ich die werte der einzelnen farbanteile auslesen kann und dann daraus die hsv- bzw. hls-farbanteile auslesen kann, damit dann weiterrechnen und sie wieder im farbfeld ausgeben kann. dabei müssten sich dann die jeweiligen scrollbalken und auch labels mit-ändern. war die fragestellung jetzt logisch? so sieht das prgramm übrigens bis jetzt aus: |
Re: RGB <--> HLS <--> HSV
mal gleich noch ne frage hinterher:
hilft es, die variablen (also die position der scrollbars) global zu definieren und wo geht das? |
Re: RGB <--> HLS <--> HSV
z.B.
Delphi-Quellcode:
Edit: evtl währe ja ein kleiner
var
Form1 : TForm1; GlobalVar1 : Integer; GloballArray : array[1..3] of Integer ![]() |
Re: RGB <--> HLS <--> HSV
soweit steht mein programm, also schonmal danke, an alle die bis jetzt geholfen haben. aber ich hab noch ein problem:
ich finde irgendwie keine formel, mit der man RGB in HLS umrechnen kann. hat jemand vielleicht so eine irgendwo rumliegen? idealerweise schon als algorithmus. :) danke :) |
Re: RGB <--> HLS <--> HSV
Liste der Anhänge anzeigen (Anzahl: 1)
Servus,
anbei eine Unit für HLStoRGB und umgekehrt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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