为了将Little
CMS的当前2.3版本与Python一起使用,我将其翻译
lcms2.h为Python发行版中随附
lcms2consts.py的
h2py.py脚本。该脚本不会转换结构声明,但这些常量足以使用
ctypes和
lcms2作为动态库进行基本的颜色转换。
本示例使用内置配置文件将单色从双精度Lab转换为8位sRGB。使用
cmsOpenProfileFromFile(filename, 'r')代替的文件。
import ctypesfrom ctypes import byreffrom lcms2consts import *lcms = ctypes.windll.lcms2inprof = lcms.cmsCreateLab4Profile(0)outprof = lcms.cmsCreate_sRGBProfile()xform = lcms.cmsCreateTransform(inprof, TYPE_Lab_DBL, outprof, TYPE_RGB_8, INTENT_PERCEPTUAL, 0)lcms.cmsCloseProfile(inprof)lcms.cmsCloseProfile(outprof)DblTriplet = ctypes.c_double * 3ByteTriplet = ctypes.c_ubyte * 3inbuf = DblTriplet(60.1,20.2,0.5)outbuf = ByteTriplet()lcms.cmsDoTransform(xform, byref(inbuf), byref(outbuf), 1)print list(outbuf)lcms.cmsDeleteTransform(xform)



