新博客地址: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)