Die Zwischenfarbe zwischen gemalten Farbtönen finden
Beim Mischen von Farben wird die resultierende Farbe durch die Absorptionseigenschaften der Pigmente beeinflusst. Blaue Farbe absorbiert rotes und grünes Licht, während gelbe Farbe blaues Licht absorbiert. In Kombination würden diese Pigmente theoretisch ein schlammiges Grau oder Schwarz ergeben. In der Praxis führt die Bevorzugung blauer Farbe zu Grün jedoch oft zu einem schlammigen Grünton.
Anstatt das Mischen von Farben zu simulieren, kann ein Algorithmus zum Interpolieren von Farben entlang eines Farbkreises intuitive Ergebnisse liefern. Der HSL-Farbraum (Hue, Saturation, Lightness) ist besonders nützlich, da er die Mittelung von Farbtönen ermöglicht.
Python-Implementierung
Der folgende Python-Code implementiert die Interpolation Algorithmus:
from colorsys import rgb_to_hls,hls_to_rgb from math import sin,cos,atan2,pi def average_colors(rgb1, rgb2): h1, l1, s1 = rgb_to_hls(rgb1[0]/255., rgb1[1]/255., rgb1[2]/255.) h2, l2, s2 = rgb_to_hls(rgb2[0]/255., rgb2[1]/255., rgb2[2]/255.) s = 0.5 * (s1 + s2) l = 0.5 * (l1 + l2) x = cos(2*pi*h1) + cos(2*pi*h2) y = sin(2*pi*h1) + sin(2*pi*h2) if x != 0.0 or y != 0.0: h = atan2(y, x) / (2*pi) else: h = 0.0 s = 0.0 r, g, b = hls_to_rgb(h, l, s) return (int(r*255.), int(g*255.), int(b*255.))
Ergebnisse
Unter Verwendung von Blau und Gelb als Eingabefarben erzeugt der Algorithmus einen grünen Farbton:
>>> average_colors((255,255,0),(0,0,255)) (0, 255, 111)
Mischen von Blau und Cyan erzeugt Cyan:
>>> average_colors((255,255,0),(0,255,255)) (0, 255, 0)
Einschränkungen
Es ist wichtig zu beachten, dass dieser Algorithmus das Mischen von Farben nicht genau simuliert. Beim Mischen von Farben wird Licht absorbiert, was ein komplexerer Prozess ist. Der HSL-Interpolationsalgorithmus ermöglicht eine intuitive Farbmischung, die nicht auf der physischen Realität basiert.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Python die Zwischenfarbe zwischen zwei gegebenen RGB-Farben finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!