Ich habe Code, der RGB-Werte in HSL-Werte sowie HSL in RGB konvertiert. Es funktioniert gut, aber ich habe eine Farbauswahl, die entweder in RGB oder HSL funktionieren kann. Das Problem ist, dass beide ganzzahlige Werte verwenden.Wie werden RGB- und HSL-Integer-Werte beim Konvertieren von Daten beibehalten?
Also, wenn ich RGB in HSL umwandeln, bekomme ich Brüche, die abgerundet werden müssen. Wenn ich wieder in RGB umwandle, sind die Werte nicht die gleichen wie sie waren - eine Zahl ist normalerweise eins (ein Wert von 123 könnte 124 werden, nachdem RGB> HSL> RGB) gegangen ist.
Ich finde diese ungerade, weil sie in Photoshop die gleiche Farbauswahl haben - Sie können zwischen RGB und HSB wählen, und wenn Sie hin und her konvertieren, bleiben die RGB-Werte konsistent und sie verwenden ganzzahlige Werte, wenn Sie beide auswählen Modi. Wie erreichen sie das?
Ich würde vorschlagen, RGB * und * HSL-Werte sowie ein Flag zu speichern, um anzuzeigen, welche aktiv ist. Sonst wäre es unmöglich, die Konsistenz aufrechtzuerhalten. (Zum Beispiel sind bei einem Sättigungswert von Null alle Farbtonwerte gleichwertig.) –
Ja, das mache ich - aber das Problem tritt auf, wenn ich die Picker-Modi wechseln will. Die Werte ändern sich, weil die Brüche ganze Zahlen werden. Ich möchte keine Brüche im Picker angeben müssen. Also frage ich mich, wie man diese Brüche versteckt hält, aber immer noch in der Lage ist, dieselben Werte auszuwählen und zu konvertieren, wie Sie es in der Vergangenheit ausgewählt haben. Photoshop macht das irgendwie. – user3591153
Wie geht es weiter mit den RGB-Werten, wenn der Benutzer zu HSL wechselt und nur HSL-Werte verwendet, wenn der Benutzer den Farbauswahlcursor im HSL-Dialog bewegt? –