zoukankan      html  css  js  c++  java
  • 基于Tkinter利用python实现颜色空间转换程序

    主要基于colorsys实现,例子是从hls转换到rgb,假设要换颜色空间非常easy仅仅须要改动一个函数

    用到了Scale和Canvas组件

    代码例如以下:

    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()
    

    执行效果例如以下图:


  • 相关阅读:
    Retrofit2源码分析
    Android8.0硬件加速的重绘流程
    Android单元测试
    rand5->rand7,rand7->rand10
    快速排序的随机化版本
    快速排序
    亦或实现交换
    在最坏情况下,找到n个元素中第二小的元素需要n+lgn-2次比较
    3*n/2时间内求出最大最小值
    基数排序
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4003917.html
Copyright © 2011-2022 走看看