Python:颜色转换器,一个转换颜色格式、调节颜色的小工具,支持RGB、HSV
rgbargs = {‘command’: lambda value: self.show(‘rgb’), ‘from_’: 0, ‘to’: 255, ‘resolution’: 5, ‘sliderlength’: 20, ‘showvalue’: False, ‘orient’: ‘horizontal’}#一些滑块参数。Label(self.frm_rgbhev, text=‘绿0~255
话不多说直接上代码:
=====================================================================
#颜色转换器
#这是一个转换颜色格式、调节颜色的小工具
#可以进行RGB、HSV、16进制色互转,以方便取色
#作者:H.612
from tkinter import Tk
from tkinter import Label
from tkinter import Frame
from tkinter import Entry
from tkinter import Scale
from tkinter import StringVar
from tkinter import Menu
from tkinter import Message
from tkinter import Toplevel
from tkinter.ttk import Separator
from math import floor
#这里的格式转换我就不多说了,各位可以自己去搜索一下
#RGB转HSV
def rgbtohsv(r, g, b):
r, g, b, = float®, float(g), float(b)
r, g, b = r/255.0, g/255.0, b/255.0
_max = max(r, g, b)
_min = min(r, g, b)
V = _max
if V == 0:
return 0, 0, 0
S = (_max - _min) / _max
if r == g == b:
return 0, 0, round(V, 3)
if r == _max:
H = (g - b) / (_max - _min) * 60
if g == _max:
H = 120 + (b - r)/(_max - _min) * 60
if b == _max:
H = 240 + (r - g)/(_max - _min) * 60
if H < 0:
H += 360
#H = H
#S = S * 255
#V = V * 255
return int(H), round(S, 3), round(V, 3)
#HSV转RGB
def hsvtorgb(h, s, v):
h = float(h)
s = float(s)
v = float(v)
h60 = h / 60.0
h60f = floor(h60)
hi = int(h60f) % 6
f = h60 - h60f
p = v * (1 - s)
q = v * (1 - f * s)
t = v * (1 - (1 - f) * s)
r, g, b = 0, 0, 0
if hi == 0:
r, g, b = v, t, p
elif hi == 1:
r, g, b = q, v, p
elif hi == 2:
r, g, b = p, v, t
elif hi == 3:
r, g, b = p, q, v
elif hi == 4:
r, g, b = t, p, v
elif hi == 5:
r, g, b = v, p, q
r, g, b = int(r * 255), int(g * 255), int(b * 255)
return r, g, b
#RGB转16进制
def rgbtohex(r, g, b):
text = ‘#’ + ‘’.join([hex(i)[-2:].replace(‘x’,‘0’) for i in list(map(int, [r, g, b]))])
return text
#16进制转RGB
def hextorgb(text: str):
r = int(‘0x’ + text[1:3], 16)
g = int(‘0x’ + text[3:5], 16)
b = int(‘0x’ + text[5:7], 16)
return r, g, b
#GUI界面
class gui:
def init(self):
#gui界面
self.root = Tk(className = ‘颜色转换器’)
self.root.attributes(‘-topmost’, True)
self.root.resizable(0, 0)
self.root.iconbitmap(‘colours_icon.ico’)
#RGB、HSV框
self.frm_rgbhev = Frame(self.root)
self.frm_rgbhev.grid(column=0, row=0, padx=5, pady=5)
#RGB部分
self.rvar = StringVar() #实例化StringVar
self.gvar = StringVar()
self.bvar = StringVar()
rgbargs = {‘command’: lambda value: self.show(‘rgb’), ‘from_’: 0, ‘to’: 255, ‘resolution’: 5, ‘sliderlength’: 20, ‘showvalue’: False, ‘orient’: ‘horizontal’} #一些滑块参数
#R
Label(self.frm_rgbhev, text=‘红0~255®:’, anchor=‘w’).grid(column=0, row=0, sticky=‘we’)
self.entry_r = Entry(self.frm_rgbhev, textvariable=self.rvar, width=10)
self.entry_r.grid(column=1, row=0, sticky=‘we’)
self.scale_r = Scale(self.frm_rgbhev, variable=self.rvar, **rgbargs)
self.scale_r.grid(column=2, row=0, sticky=‘we’)
#G
Label(self.frm_rgbhev, text=‘绿0~255(g):’, anchor=‘w’).grid(column=0, row=1, sticky=‘we’)
self.entry_g = Entry(self.frm_rgbhev, textvariable=self.gvar, width=10)
self.entry_g.grid(column=1, row=1, sticky=‘we’)
self.scale_g = Scale(self.frm_rgbhev, variable=self.gvar, **rgbargs)
self.scale_g.grid(column=2, row=1, sticky=‘we’)
#B
Label(self.frm_rgbhev, text=‘蓝0~255(b):’, anchor=‘w’).grid(column=0, row=2, sticky=‘we’)
self.entry_b = Entry(self.frm_rgbhev, textvariable=self.bvar, width=10)
self.entry_b.grid(column=1, row=2, sticky=‘we’)
self.scale_b = Scale(self.frm_rgbhev, variable=self.bvar, **rgbargs)
self.scale_b.grid(column=2, row=2, sticky=‘we’)
#为了得到最新值,我们等10毫秒再获取输入框的值。后面的也和这里一样:
self.entry_r.bind(‘’, lambda event: self.root.after(10, lambda:self.show(‘rgb’)))
self.entry_g.bind(‘’, lambda event: self.root.after(10, lambda:self.show(‘rgb’)))
self.entry_b.bind(‘’, lambda event: self.root.after(10, lambda:self.show(‘rgb’)))
#分界线
Separator(self.frm_rgbhev, orient=‘horizontal’).grid(column=0, row=3, columnspan=3, pady=5, sticky=‘we’)
#HSV部分
self.hvar = StringVar() #实例化StringVar
self.svar = StringVar()
self.vvar = StringVar()
感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)