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
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
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)