为了使用当前的2.3版本
Little CMS
我翻译了python
lcms2.h
到
lcms2consts.py
与
h2py.py
python发行版中提供的脚本。脚本不转换结构声明,但常量足以对
ctypes
和
lcms2
作为动态库。
此示例使用内置配置文件将单一颜色从双精度实验室转换为8位SRGB。使用
cmsOpenProfileFromFile(filename, 'r')
而不是文件。
import ctypes
from ctypes import byref
from lcms2consts import *
lcms = ctypes.windll.lcms2
inprof = 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 * 3
ByteTriplet = ctypes.c_ubyte * 3
inbuf = DblTriplet(60.1,20.2,0.5)
outbuf = ByteTriplet()
lcms.cmsDoTransform(xform, byref(inbuf), byref(outbuf), 1)
print list(outbuf)
lcms.cmsDeleteTransform(xform)