如何在Tkinter中制作颜色选择比例?

问题描述 投票:1回答:2

我正在尝试为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'))

基本上我想要一个按照“正常”顺序通过颜色的缩放小部件。我怎么能用数值来做这个?

python tkinter color-picker ttk
2个回答
3
投票

您的问题是您正在使用一维比例来表示三维色彩空间。

对于你正在寻找的东西,我建议使用HSL or HSV颜色空间,而有问题的尺度操纵Hue参数。当您确实需要RGB值时,您可以通过HSL / HSV值的转换获得它们(我链接的Wikipedia页面解释了如何)。


1
投票

你可以使用matplotlib的预制彩色图(喷射,彩虹等)from matplotlib import cm或创建自己的,然后通过rgb值。您可以使用标准值通常以256个值(last paragraph)分隔的事实。如果这对你来说足够了,后者可能是最简单的。

这是你问的吗?

© www.soinside.com 2019 - 2024. All rights reserved.