def test_cmyk_to_rgb():
    """Test translation function cmyk_to_rgb"""
    cmyk = colormodel.CMYK(0.0, 0.0, 0.0, 1.2356)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(252, rgb.red)
    cornelltest.assert_equals(252, rgb.green)
    cornelltest.assert_equals(252, rgb.blue)

    cmyk = colormodel.CMYK(7.1254, 100.0, 25.569, .123456032934)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(237, rgb.red)
    cornelltest.assert_equals(0, rgb.green)
    cornelltest.assert_equals(190, rgb.blue)

    cmyk = colormodel.CMYK(63.409, 2.0000001, 100.0, 83.099)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(16, rgb.red)
    cornelltest.assert_equals(42, rgb.green)
    cornelltest.assert_equals(0, rgb.blue)

    cmyk = colormodel.CMYK(100.0, 54.99999, 3.694286, 100.0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(0, rgb.red)
    cornelltest.assert_equals(0, rgb.green)
    cornelltest.assert_equals(0, rgb.blue)
def test_str5_color():
    """Test the str5 functions for cmyk and hsv."""
    cornelltest.assert_equals('(98.45, 25.36, 99.99, 21.99)',\
            a3.str5_cmyk(colormodel.CMYK(98.448, 25.362, 99.99, 21.994)));
    
    cornelltest.assert_equals('(32.33, 6.355, 0.001, 10.01)',\
    a3.str5_cmyk(colormodel.CMYK(32.3256, 6.3546, .0013, 10.013567)))
Example #3
0
def test_cmyk_to_rgb():
    """Test translation function cmyk_to_rgb"""
    cmyk = colormodel.CMYK(0.0, 0.0, 0.0, 0.0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(255, rgb.red)
    cornelltest.assert_equals(255, rgb.green)
    cornelltest.assert_equals(255, rgb.blue)

    cmyk = colormodel.CMYK(100.0, 100.0, 100.0, 100.0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(0, rgb.red)
    cornelltest.assert_equals(0, rgb.green)
    cornelltest.assert_equals(0, rgb.blue)

    cmyk = colormodel.CMYK(34.0, 12.5432, 66.666666, 1.0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(167, rgb.red)
    cornelltest.assert_equals(221, rgb.green)
    cornelltest.assert_equals(84, rgb.blue)

    cmyk = colormodel.CMYK(72.4444, 65.0, 90.1, 56.23)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(31, rgb.red)
    cornelltest.assert_equals(39, rgb.green)
    cornelltest.assert_equals(11, rgb.blue)

    cmyk = colormodel.CMYK(0.0, 0.0, 0.0, 100.0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cornelltest.assert_equals(0, rgb.red)
    cornelltest.assert_equals(0, rgb.green)
    cornelltest.assert_equals(0, rgb.blue)
Example #4
0
def test_cmyk_to_rgb():
    """Test translation function cmyk_to_rgb"""
    #Test cmyk_to_rgb() when K = 1:
    cmyk = colormodel.CMYK(10, 11, 12, 100)
    rgb = a3.cmyk_to_rgb(cmyk)
    cunittest.assert_equals(0, rgb.red)
    cunittest.assert_equals(0, rgb.green)
    cunittest.assert_equals(0, rgb.blue)

    #Test cmyk_to_rgb() when C, M, or Y = 0:
    cmyk = colormodel.CMYK(0, 11, 12, 0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cunittest.assert_equals(255, rgb.red)
    cunittest.assert_equals(227, rgb.green)
    cunittest.assert_equals(224, rgb.blue)

    cmyk = colormodel.CMYK(10, 0, 12, 0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cunittest.assert_equals(230, rgb.red)
    cunittest.assert_equals(255, rgb.green)
    cunittest.assert_equals(224, rgb.blue)

    cmyk = colormodel.CMYK(10, 11, 0, 0)
    rgb = a3.cmyk_to_rgb(cmyk)
    cunittest.assert_equals(230, rgb.red)
    cunittest.assert_equals(227, rgb.green)
    cunittest.assert_equals(255, rgb.blue)

    #General Test Case
    cmyk = colormodel.CMYK(4, 20, 7, 18.63)
    rgb = a3.cmyk_to_rgb(cmyk)
    cunittest.assert_equals(199, rgb.red)
    cunittest.assert_equals(166, rgb.green)
    cunittest.assert_equals(193, rgb.blue)
Example #5
0
def rgb_to_cmyk(rgb):
    """Returns: color rgb in space CMYK, with the most black possible.
    
    Formulae from en.wikipedia.org/wiki/CMYK_color_model.
    
    Parameter rgb: the color to convert to a CMYK object
    Precondition: rgb is an RGB object"""

    # Divide all rgb values by 255.0 to change range from 0..255.0 to 0..1.0
    r = rgb.red / 255.0
    g = rgb.green / 255.0
    b = rgb.blue / 255.0

    #Subtract all rgb values from 1
    c = 1 - r
    m = 1 - g
    y = 1 - b

    #Change all CMYK values to 0 except black
    if c == 1 and m == 1 and y == 1:
        return colormodel.CMYK(0.0, 0.0, 0.0, 1.0 * 100.0)
    else:
        k = min(c, m, y)
        cy = ((c - k) / (1 - k)) * 100.0
        mag = ((m - k) / (1 - k)) * 100.0
        yell = ((y - k) / (1 - k)) * 100.0
        return colormodel.CMYK(cy, mag, yell, k * 100.0)
def rgb_to_cmyk(rgb):
    """Returns: color rgb in space CMYK, with the most black possible.
    
    Formulae from en.wikipedia.org/wiki/CMYK_color_model.
    
    Parameter rgb: the color to convert to a CMYK object
    Precondition: rgb is an RGB object"""
    # The RGB numbers are in the range 0..255.

    cmyk = colormodel.CMYK(0.0, 0.0, 0.0, 0.0)
    c = 1 - (rgb.red / 255.0)
    m = 1 - (rgb.green / 255.0)
    y = 1 - (rgb.blue / 255.0)

    if c == 1.0 and m == 1.0 and y == 1.0:
        cmyk = colormodel.CMYK(0.0, 0.0, 0.0, 100.0)

    else:
        k = min(c, m, y)

        cmyk.cyan = (c - k) / (1 - k) * 100
        cmyk.magenta = (m - k) / (1 - k) * 100
        cmyk.yellow = (y - k) / (1 - k) * 100
        cmyk.black = k * 100
        return cmyk
Example #7
0
def test_str5_color():
    """Test the str5 functions for cmyk and hsv."""
    cornelltest.assert_equals(
        '(98.45, 25.36, 72.80, 1.000)',
        a3.str5_cmyk(colormodel.CMYK(98.448, 25.362, 72.8, 1.0)))
    cornelltest.assert_equals(
        '(1.000, 100.0, 23.12, 54.44)',
        a3.str5_cmyk(colormodel.CMYK(1, 100, 23.12345, 54.435)))
    cornelltest.assert_equals('(98.45, 0.000, 0.123)',
                              a3.str5_hsv(colormodel.HSV(98.448, 0, .123456)))
    cornelltest.assert_equals('(312.0, 0.500, 0.568)',
                              a3.str5_hsv(colormodel.HSV(312, 0.5, 0.56789)))
def test_str5_color():
    """Test the str5 functions for cmyk and hsv."""
    cornelltest.assert_equals(
        '(98.45, 25.36, 72.80, 1.000)',
        a3.str5_cmyk(colormodel.CMYK(98.448, 25.362, 72.8, 1.0)))
    cornelltest.assert_equals(
        '(100.0, 0.225, 83.50, 0.000)',
        a3.str5_cmyk(colormodel.CMYK(100.0, .2245, 83.5, 0.0)))
    cornelltest.assert_equals(
        '(56.00, 0.000, 0.987)',
        a3.str5_hsv(colormodel.HSV(55.999, 0.0, 0.9874234353442)))
    cornelltest.assert_equals(
        '(250.4, 1.000, 0.488)',
        a3.str5_hsv(colormodel.HSV(250.356, 1.0, .4878325345)))
Example #9
0
def rgb_to_cmyk(rgb):
    """Returns: color rgb in space CMYK, with the most black possible.

    Formulae from en.wikipedia.org/wiki/CMYK_color_model.

    Precondition: rgb is an RGB object"""

    assert (type(rgb) == colormodel.RGB), ('Value ' + ` rgb ` +
                                           ' is not an RGB object')

    R = rgb.red / 255.0
    G = rgb.green / 255.0
    B = rgb.blue / 255.0

    C = 1 - R
    M = 1 - G
    Y = 1 - B

    if C == 1 and M == 1 and Y == 1:
        C = 0
        Y = 0
        M = 0
        K = 1
    else:
        K = min(C, M, Y)
        C = (C - K) / (1 - K)
        M = (M - K) / (1 - K)
        Y = (Y - K) / (1 - K)

    C = C * 100.0
    M = M * 100.0
    Y = Y * 100.0
    K = K * 100.0
    return colormodel.CMYK(C, M, Y, K)
 def on_cmyk_press(self,c,m,y,k):
     """Call back to cmyk button"""
     self.cmyk = colormodel.CMYK(c, m, y, k)
     temp = a3.cmyk_to_rgb(self.cmyk)
     assert (temp == None or type(temp) == colormodel.RGB), 'cmyk_to_rgb does not return a RGB object'
     self.rgb = self.rgb if temp is None else temp
     self.hsv = a3.rgb_to_hsv(self.rgb)
     assert (self.hsv == None or type(self.hsv) == colormodel.HSV), 'rgb_to_hsv does not return a HSV object'
     self.update()
def test_cmyk_to_rgb():
    """Test translation function cmyk_to_rgb"""
    cmyk= colormodel.CMYK(100.0, 100.0, 100.0, 100.0);
    rgb = a3.cmyk_to_rgb(cmyk);
    cornelltest.assert_equals( 0, rgb.red)
    cornelltest.assert_equals( 0, rgb.green)
    cornelltest.assert_equals( 0, rgb.blue)
    
    cmyk= colormodel.CMYK(0.000, 000.0, 000.0, 000.0);
    rgb = a3.cmyk_to_rgb(cmyk);
    cornelltest.assert_equals( 255, rgb.red)
    cornelltest.assert_equals( 255, rgb.green)
    cornelltest.assert_equals( 255, rgb.blue)
    
    cmyk= colormodel.CMYK(50.00, 50.00, 50.00, 50.00);
    rgb = a3.cmyk_to_rgb(cmyk);
    cornelltest.assert_equals( 63, rgb.red)
    cornelltest.assert_equals( 63, rgb.green)
    cornelltest.assert_equals( 63, rgb.blue)
Example #12
0
def test_to_strings():
    """Test toString methods"""
    #Test rgb_to_string:()
    cunittest.assert_equals("(30, 240, 230)",
                            a3.rgb_to_string(colormodel.RGB(30, 240, 230)))

    #Test cmyk_to_string()
    cunittest.assert_equals("(10.00, 11.00, 20.00, 12.00)",
                            a3.cmyk_to_string(colormodel.CMYK(10, 11, 20, 12)))
    #Test that cmyk_to_string() uses round5(), not `truncate5()`:
    cunittest.assert_equals(
        "(10.01, 11.00, 20.01, 12.00)",
        a3.cmyk_to_string(colormodel.CMYK(10.005, 11.0045, 20.009, 12.001)))

    #Test hsv_to_string()
    cunittest.assert_equals("(100.0, 1.000, 1.000)",
                            a3.hsv_to_string(colormodel.HSV(100, 1, 1)))
    #Test that hsv_to_string uses round5(), not `truncate5()`:
    cunittest.assert_equals(
        "(100.0, 0.500, 0.499)",
        a3.hsv_to_string(colormodel.HSV(99.999, .4996, .4994)))
 def on_cmyk_slide(self,c,m,y,k):
     """Call back to cmyk sliders"""
     if not self.active:
         return
     cyan = c / 100.0
     magenta = m / 100.0
     yellow = y / 100.0
     black = k / 100.0
     self.cmyk = colormodel.CMYK(cyan, magenta, yellow, black)
     temp = a3.cmyk_to_rgb(self.cmyk)
     assert (temp == None or type(temp) == colormodel.RGB), 'cmyk_to_rgb does not return a RGB object'
     self.rgb = self.rgb if temp is None else temp
     self.hsv = a3.rgb_to_hsv(self.rgb)
     assert (self.hsv == None or type(self.hsv) == colormodel.HSV), 'rgb_to_hsv does not return a HSV object'
     self.update()