我正在尝试为Tkinter应用程序创建一个颜色选择比例。在
我对tkinter.colorchooser
模块或每个RGB通道的单独刻度不感兴趣。我需要一个像Photoshop中的颜色滑块那样的比例。在
我目前拥有的是一个垂直缩放小部件,其RGB整数值从0
(#000
)到16777215
(#FFF
)。问题是,使用一系列的RGB整数会导致一个非常奇怪的颜色序列,而不是从红色到粉色再到蓝色等等,就像下面的第一张图片一样。在
取而代之的是第二张图片中的颜色序列。它被大量压缩,因为有16777215种不同的颜色被压缩成300像素。第三张图片是变焦。你可以看到它从黑色变成绿色,然后几乎从黑色变成绿色,等等
以下是我代码的相关部分:
MAXRGBINT = 16777215 # Corresponds to (255, 255, 255)
scale = ttk.Scale(slidframe, orient=VERTICAL, length=75,
from_=0, to=MAXRGBINT,
command=lambda _: set_color('sprite'))
基本上我想要一个缩放小部件,将通过颜色的“正常”顺序。我怎么用数值来做这个呢?在
您可以使用matplotlib的预先制作的颜色贴图(jet、rainbow等)
from matplotlib import cm
,也可以创建自己的颜色映射,然后遍历rgb值。您可以使用这样一个事实:标准值通常以256个值(last paragraph)分隔。如果这对你来说足够了,后者可能是最简单的。在这就是你要问的吗?在
你的问题是,你使用的是一个三维颜色空间的一维比例。在
对于您所要寻找的,我建议使用HSL or HSV颜色空间,并使用所讨论的比例操作色调参数。当您需要RGB值时,您可以通过从HSL/HSV值转换来获得它们(我链接的Wikipedia页面解释了如何)。在
相关问题 更多 >
编程相关推荐