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

2024-09-30 04:30:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为Tkinter应用程序创建一个颜色选择比例。在

我对tkinter.colorchooser模块或每个RGB通道的单独刻度不感兴趣。我需要一个像Photoshop中的颜色滑块那样的比例。在

我目前拥有的是一个垂直缩放小部件,其RGB整数值从0#000)到16777215#FFF)。问题是,使用一系列的RGB整数会导致一个非常奇怪的颜色序列,而不是从红色到粉色再到蓝色等等,就像下面的第一张图片一样。在

取而代之的是第二张图片中的颜色序列。它被大量压缩,因为有16777215种不同的颜色被压缩成300像素。第三张图片是变焦。你可以看到它从黑色变成绿色,然后几乎从黑色变成绿色,等等

Color slider in Photoshop
Gradient based on RGB integers
Closer look at the gradient

以下是我代码的相关部分:

MAXRGBINT = 16777215  # Corresponds to (255, 255, 255)
scale = ttk.Scale(slidframe, orient=VERTICAL, length=75,
                  from_=0, to=MAXRGBINT,
                  command=lambda _: set_color('sprite'))

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


Tags: to应用程序颜色部件tkinter图片序列整数
2条回答

您可以使用matplotlib的预先制作的颜色贴图(jet、rainbow等)from matplotlib import cm,也可以创建自己的颜色映射,然后遍历rgb值。您可以使用这样一个事实:标准值通常以256个值(last paragraph)分隔。如果这对你来说足够了,后者可能是最简单的。在

这就是你要问的吗?在

你的问题是,你使用的是一个三维颜色空间的一维比例。在

对于您所要寻找的,我建议使用HSL or HSV颜色空间,并使用所讨论的比例操作色调参数。当您需要RGB值时,您可以通过从HSL/HSV值转换来获得它们(我链接的Wikipedia页面解释了如何)。在

相关问题 更多 >

    热门问题