您的位置:首页 > 其它

HSV与RGB互相转换

2010-12-11 23:52 387 查看
新博客地址:http://gorthon.sinaapp.com/

def RGB2HSV(r,g,b):
    gmin = min(r,g,b)
    V = max(r,g,b)*1.0
    delta =V-gmin
    if V== 0:return (0,0,0)
    S = delta/V
    if delta == 0:
        H=0
        return (0,0,V/255)
    if r== V:H=(g-b)/delta
    if g== V:H=2+(b-r)/delta
    if b== V:H=4+(r-g)/delta
    H=H*60
    V=V/255
    if H<0:H+= 360
    return (H,S,V)




def HSV2RGB(H,S,V):
    hex=H/60
    main =int (hex)
    pmain =hex-main
    V=V*255.0
    t1=(1-S)*V
    t2=(1-(S*pmain))*V
    t3=(1-(S*(1-pmain)))*V
    if main == 0:
        r=V
        g=t3
        b=t1
    if main == 1:
        r=t2
        g=V
        b=t1
    if main == 2:
        r=t1
        g=V
        b=t3
    if main == 3:
        r=t1
        g=t2
        b=V
    if main == 4:
        r=t3
        g=t1
        b=V
    if main == 5:
        r=V
        g=t1
        b=t2
    return (r,g,b)
print RGB2HSV(255,0,255)
print HSV2RGB(300,1,1)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: