Skip to content

Instantly share code, notes, and snippets.

@svschannak
Created February 4, 2014 10:10
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save svschannak/8801034 to your computer and use it in GitHub Desktop.
Save svschannak/8801034 to your computer and use it in GitHub Desktop.
convert rgb to cmyk to rgb
def rgb_to_cmyk(r,g,b):
cmyk_scale = 100
if (r == 0) and (g == 0) and (b == 0):
# black
return 0, 0, 0, cmyk_scale
# rgb [0,255] -> cmy [0,1]
c = 1 - r / 255.
m = 1 - g / 255.
y = 1 - b / 255.
# extract out k [0,1]
min_cmy = min(c, m, y)
c = (c - min_cmy) / (1 - min_cmy)
m = (m - min_cmy) / (1 - min_cmy)
y = (y - min_cmy) / (1 - min_cmy)
k = min_cmy
# rescale to the range [0,cmyk_scale]
return c*cmyk_scale, m*cmyk_scale, y*cmyk_scale, k*cmyk_scale
def cmyk_to_rgb(c, m, y, k):
cmyk_scale = 100
c = c / cmyk_scale
m = m / cmyk_scale
y = y / cmyk_scale
#c = -(c + -(k))
c = c * (1-k) + k
m = m * (1-k) + k
y = y * (1-k) + k
r = (1-c) * 255.
g = (1-m) * 255.
b = (1-y) * 255.
return r, g, b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment