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

fen*_*eop 1 python tkinter color-picker ttk

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

\n\n

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

\n\n

我目前拥有的是一个垂直缩放小部件,其 RGB 整数值从0( #000) 到16777215(#FFF )。问题是,使用一系列 RGB 整数会产生非常奇怪的颜色序列\xe2\x80\x94,选择不会从红色到粉色到蓝色等,如下面的第一张图片所示。

\n\n

相反,我得到了第二张图像中的颜色序列。它被严重压缩,因为 300 个像素中有 16777215 种不同的颜色。第三张图是放大图。您可以看到它从黑色变为绿色,然后几乎从黑色变为绿色,等等。

\n\n

Photoshop 中的颜色滑块
\n基于 RGB 整数的渐变
\n仔细看看渐变

\n\n

这是我的代码的相关部分:

\n\n
MAXRGBINT = 16777215  # Corresponds to (255, 255, 255)\nscale = ttk.Scale(slidframe, orient=VERTICAL, length=75,\n                  from_=0, to=MAXRGBINT,\n                  command=lambda _: set_color(\'sprite\'))\n
Run Code Online (Sandbox Code Playgroud)\n\n

基本上我想要一个缩放小部件,它将按“正常”顺序遍历颜色。我怎样才能用数值做到这一点?

\n

jan*_*ler 5

您的问题是您正在为三维颜色空间使用一维比例。

对于您正在寻找的内容,我建议改用HSL 或 HSV颜色空间,并使用相关比例来操纵色调参数。当您确实需要 RGB 值时,您可以通过从 HSL/HSV 值转换来获取它们(我链接的维基百科页面解释了如何操作)。