Esempio n. 1
0
def get_cdr_color(color):
    """
    Converts color list to CDR colorspace and color valbytes
    """
    cs = CDR_CS_MATSH[uc2const.COLOR_RGB]
    valbytes = b'\x05\x05\x00\x00\x00\x00'
    if not color[0] == uc2const.COLOR_SPOT:
        cs = CDR_CS_MATSH[color[0]]
        if color[0] == uc2const.COLOR_RGB:
            r, g, b = cms.val_255(color[1])
            valbytes += struct.pack('<3B', b, g, r) + b'\x00'
        elif color[0] == uc2const.COLOR_CMYK:
            valbytes += struct.pack('<4B', *cms.val_100(color[1]))
        elif color[0] == uc2const.COLOR_GRAY:
            valbytes += struct.pack('<B', *cms.val_255(color[1]))
            valbytes += b'\xeb\x54\x01'
        if color[0] == uc2const.COLOR_LAB:
            valbytes = b'\x0d\x00\x00\x00\x00\x00'
            valbytes += struct.pack('<3B', *cms.val_255(color[1])) + b'\xcc'
    else:
        if color[1][1]:
            cs = CDR_CS_MATSH[uc2const.COLOR_CMYK]
            valbytes += struct.pack('<4B', *cms.val_100(color[1]))
        else:
            r, g, b = cms.val_255(color[1][0])
            valbytes += struct.pack('<3B', b, g, r) + b'\x00'
    return cs, valbytes
Esempio n. 2
0
def get_cdr_color(color):
	"""
	Converts color list to CDR colorspace and color valbytes
	"""
	cs = CDR_CS_MATSH[uc2const.COLOR_RGB]
	valbytes = '\x05\x05\x00\x00\x00\x00'
	if not color[0] == uc2const.COLOR_SPOT:
		cs = CDR_CS_MATSH[color[0]]
		if color[0] == uc2const.COLOR_RGB:
			r, g, b = cms.val_255(color[1])
			valbytes += struct.pack('<3B', b, g, r) + '\x00'
		elif color[0] == uc2const.COLOR_CMYK:
			valbytes += struct.pack('<4B', *cms.val_100(color[1]))
		elif color[0] == uc2const.COLOR_GRAY:
			valbytes += struct.pack('<B', *cms.val_255(color[1]))
			valbytes += '\xeb\x54\x01'
		if color[0] == uc2const.COLOR_LAB:
			valbytes = '\x0d\x00\x00\x00\x00\x00'
			valbytes += struct.pack('<3B', *cms.val_255(color[1])) + '\xcc'
	else:
		if color[1][1]:
			cs = CDR_CS_MATSH[uc2const.COLOR_CMYK]
			valbytes += struct.pack('<4B', *cms.val_100(color[1]))
		else:
			r, g, b = cms.val_255(color[1][0])
			valbytes += struct.pack('<3B', b, g, r) + '\x00'
	return cs, valbytes
Esempio n. 3
0
 def _add_color(self, color):
     doc_cms = self.sk2_doc.cms
     rclr = self.cmx_model.chunk_map['rclr']
     clr = (5, 5, (0, 0, 0))  # Fallback RGB black
     if color[0] == uc2const.COLOR_RGB:
         model = cmx_const.COLOR_MODELS.index(cmx_const.CMX_RGB)
         palette = cmx_const.COLOR_PALETTES.index('User')
         vals = cms.val_255(color[1])
         clr = (model, palette, vals)
     elif color[0] == uc2const.COLOR_CMYK:
         model = cmx_const.COLOR_MODELS.index(cmx_const.CMX_CMYK)
         palette = cmx_const.COLOR_PALETTES.index('User')
         vals = cms.val_100(color[1])
         clr = (model, palette, vals)
     else:
         model = cmx_const.COLOR_MODELS.index(cmx_const.CMX_RGB)
         palette = cmx_const.COLOR_PALETTES.index('User')
         vals = doc_cms.get_rgb_color255(color)
         clr = (model, palette, vals)
     return rclr.add_color(clr)