This is the current revision of this page, as edited by Qwerfjkl (bot) (talk | contribs) at 15:49, 8 May 2022 (→top: Replaced deprecated <source> tags with <syntaxhighlight>). The present address (URL) is a permanent link to this version.
Revision as of 15:49, 8 May 2022 by Qwerfjkl (bot) (talk | contribs) (→top: Replaced deprecated <source> tags with <syntaxhighlight>)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)#!/usr/bin/python # colorspace.py # calculates RGB, CMYK and HSV values from a hex triplet # Diclaimer: # I only just picked up python. No apologies are made for this code. # Dysprosia and Chinasaur helped with formulas for CMYK and HSV respectively def hextriplet2rgb(triplet) : value=int(triplet, 16) r=(value & 0xFF0000) / 0x10000 g=(value & 0x00FF00) / 0x100 b=(value & 0x0000FF) return (r,g,b) # from http://en.wikipedia.org/CMYK def rgb2cmyk (rgb) : r,g,b=rgb c,m,y=(1 - r / 255.0,1 - g / 255.0,1 - b / 255.0) C,M,Y,K= (c-min(c,m,y),m-min(c,m,y),y-min(c,m,y),min(c,m,y)) # and additionally, *255 to convert proportion up to 8bits return tuple(map (lambda proportion: int(proportion*255), )) # from http://en.wikipedia.org/HSV_color_space def rgb2hsv (rgb) : # formula takes fp, bother! r,g,b = map (lambda x : x/255.0, rgb) MAX=max(r,g,b) MIN=min(r,g,b) # Using a "undefined" instead of None # because we want encyclopedic style output h="undefined" #default s="undefined" #default v=MAX if v > 0 : s = (MAX - MIN) / MAX if s > 0 and s != "undefined" : if r == MAX: h=(0.0+( (g-b)/(MAX-MIN) ))*60 if g == MAX: h=(2.0+( (b-r)/(MAX-MIN) ))*60 if b == MAX: h=(4.0+( (r-g)/(MAX-MIN) ))*60 # Format H=h if h != "undefined" : if h < 0: h+=360 H=int(round(h)) S=s if s!= "undefined" : S=int(round(s*100)) V=int(round(v*100)) return (H,S,V) while True: print "\n\n" print "== Color Coordinates ==" hextriplet = raw_input(" \'\'\']\'\'\' = #") rgb=hextriplet2rgb(hextriplet) print " \'\'\']\'\'\' (r, g, b) = ",rgb print " \'\'\']\'\'\' (c, m, y, k) = ",rgb2cmyk(rgb) print " \'\'\']\'\'\' (h, s, v) = ",rgb2hsv(rgb)