ペイントの色空間で色を混合するためのアルゴリズム
物理的なペイントを混合すると、得られる色は、色を混合したときに予想される色と異なります。デジタル画面。これは、ペイントが吸収によって混合するのに対し、デジタル カラーの混合には放出が含まれるためです。
ペイントの吸収とデジタル カラーの混合
ペイント カラースペースでのカラー混合アルゴリズム
ペイントでの色の混合色空間では、白色光から吸収された波長を減算します (255、255、255)。たとえば、青色のペイント (赤と緑を吸収) と黄色のペイント (青色を吸収) を混合すると、濁った緑色になります。
HLS カラースペースを使用した代替ソリューション
代替、HLS (色相、明度、彩度) 色空間を使用すると、物理的な吸収特性に依存しない、より直感的な色の混合結果を提供できます。 Paint.
HLS 色空間での色混合用の Python コード
以下は、HLS 色空間の 2 つの色の平均を計算する Python 関数です。
import math from colorsys import rgb_to_hls, hls_to_rgb 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.))
この関数を使用すると、青と黄色の絵の具を混ぜた結果を近似できます。例:
>>> average_colors((255, 255, 0), (0, 0, 255)) (0, 255, 111)
このアプローチは、物理的なペイントの吸収特性に制約されない、より直感的な色の混合結果を提供します。
以上がアルゴリズムを使用してペイントの色の混合を正確にモデル化するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。