为了在 Python 中使用当前 2.3 版本的Little CMS,我使用Python 发行版中的脚本进行了lcms2.h
翻译。该脚本不翻译结构声明,但常量足以使用动态库和作为动态库进行基本的颜色转换。lcms2consts.py
h2py.py
ctypes
lcms2
此示例使用内置配置文件将单色从双精度 Lab 转换为 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)