python实现颜色空间转换程序(Tkinter)

时间:2022-09-23 19:10:17

本文主要基于colorsys实现,样例是从hls转换到rgb,如果要换颜色空间很容易只需要修改一个函数,具体内容如下

用到了Scale和Canvas组件

运行效果图:

python实现颜色空间转换程序(Tkinter)

python实现颜色空间转换程序(Tkinter)

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from Tkinter import *
import colorsys
#操作后的响应函数
def update(* args):
  'color'
  r,g,b = colorsys.hls_to_rgb(h.get() / 255.0, l.get() / 255.0, s.get() / 255.0)
  r,g,b = r * 255, g * 255, b * 255
  rgb.configure(text = 'RGB:(%d, %d, %d)' % (r, g, b))
  c.configure(bg = '#%02X%02X%02X' %(r, g, b))
 
root = Tk()
hue = Label(root, text = 'Hue')
hue.grid(row = 0, column = 0)
 
light = Label(root, text = 'Lightness')
light.grid(row = 0, column = 1)
 
sat = Label(root, text = 'Saturation')
sat.grid(row = 0, column = 2)
#初始化颜色为rgb的000,也就是纯黑色
rgb = Label(root, text = 'RGB(0, 0, 0)')
rgb.grid(row = 0, column = 3)
 
 
h = Scale(root, from_ = 255, to = 0, command = update)
h.grid(row = 1, column = 0)
 
l = Scale(root, from_ = 255, to = 0, command = update)
l.grid(row = 1, column = 1)
 
s = Scale(root, from_ = 255, to = 0, command = update)
s.grid(row = 1, column = 2)
 
c = Canvas(root, width = 100, height = 100, bg = 'Black')
c.grid(row = 1, column = 3)
 
root.mainloop()

以上就是本文的全部内容,希望对大家的学习Python程序设计有所帮助。