Eine UIColor aufhellen

8

Ich bin gestern in eine Situation geraten, wo ich eine UIColor aufhellen musste, also habe ich eine Kategorie erstellt und eine lighten -Methode hinzugefügt. Ich dachte, es wäre einfach, den Wert für jede Komponente der Farbe zu multiplizieren, aber meine Grüns begannen gelb zu werden, so dass ich wusste, dass es komplizierter sein musste.

Die Lösung, die ich mir ausgedacht habe, bestand darin, von sRGB in Linear zu konvertieren, die Farbe zu multiplizieren und dann zurück zu konvertieren. Das scheint zu funktionieren, aber ich bin mir nicht sicher, ob es "korrekt" ist. Ich konnte nichts in den Dokumenten finden, die angaben, dass UIColor im sRGB-Raum war. Ich bin auch kein Farbwissenschaftler, also habe ich nur ein rudimentäres Wissen über die Mathematik.

Wie auch immer, hier ist mein Code, ich frage nach einem Peer-Review und um zu sehen, ob irgendjemand ein besseres Verständnis davon hat, UIColors zu modifizieren.

%Vor%     
keegan3d 03.10.2012, 19:52
quelle

6 Antworten

24

Dies ist meine iOS5 + -Lösung, mit der sich relative Helligkeitsänderungen leicht ändern lassen (Aufhellen und Abdunkeln des All-in-One):

%Vor%

Es wird wie folgt aufgerufen:

%Vor%

Mit 1.1 erhöht sich die Helligkeit um 10%; 0,9 verringert die Helligkeit um 10%. Beachten Sie, dass die 10% relativ zu reinem Weiß sind (dh 10% ist immer eine .1 Helligkeitszunahme). Dies ist das erwartete Verhalten, wenn Sie eine prozentuale Zunahme wünschen, um die Farben unabhängig von ihrer ursprünglichen Helligkeit gleichmäßig zu erhellen oder zu verdunkeln / p>     

Andres Kievsky 26.01.2013 07:24
quelle
4

Sie können mit Farbton, Sättigung und Helligkeit arbeiten.

Erhalte die alten Werte mit

%Vor%

Passen Sie dann die Helligkeit an und erstellen Sie eine neue Farbe:

%Vor%

Beachten Sie, dass Sie Zeiger auf die erste Funktion übergeben müssen.

    
Eiko 03.10.2012 20:20
quelle
0

Ich habe die Methode von nk verbessert, um auch die Sättigung und den Farbton zu ändern.

Die Eingabe wird als Prozentsatz behandelt, sodass b von 1.0 gleich 100% ist (keine Änderung). Um die Helligkeit um 30% zu schwächen, setzen Sie b auf 0.7.

%Vor%     
Kof 27.06.2014 12:48
quelle
0

probiere

aus %Vor%

es sollte gemischte weiße Farbe mit Ihrer Farbe

zurückgeben

so können Sie alpha auf 0,2 setzen und ich denke, es wird in Ordnung sein

    
marcinno 16.06.2015 11:09
quelle
0

Kofs Antwort in Swift:

%Vor%     
GilroyKilroy 03.01.2016 00:37
quelle
0
%Vor%

== 1.0 ist die mitgelieferte Farbe, & gt; 1.0 ist heller und & lt; 1.0 ist dunkler.

    
Jakub Truhlář 24.03.2016 15:24
quelle