我正在尝试为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'))
基本上我想要一个按照“正常”顺序浏览颜色的缩放小部件。我怎么能用数值来做这个?
答案 0 :(得分:3)
您的问题是您正在使用一维比例来表示三维色彩空间。
对于您正在寻找的内容,我建议您使用HSL or HSV颜色空间,并使用有问题的比例来操纵Hue参数。当您执行需要RGB值时,您可以通过HSL / HSV值的转换获取它们(我链接的维基百科页面解释了如何)。
答案 1 :(得分:1)
您可以使用matplotlib的预制色图(jet,rainbow等)from matplotlib import cm
或创建自己的色块,然后浏览rgb值。您可以使用标准值通常以256个值(last paragraph)分隔的事实。如果这对你来说已经足够了,后者可能是最简单的。
这就是你问的问题吗?