ImageCms
模块¶
ImageCms
模块使用 LittleCMS2 颜色管理引擎提供颜色配置文件管理支持,基于 Kevin Cazabon 的 PyCMS 库。
- class PIL.ImageCms.ImageCmsProfile(profile: str | SupportsRead[bytes] | CmsProfile)[source]¶
- __init__(profile: str | SupportsRead[bytes] | CmsProfile) None [source]¶
- 参数:
profile – 文件名字符串,包含配置文件的文件类对象或低级配置文件对象
- class PIL.ImageCms.ImageCmsTransform(input: ~PIL.ImageCms.ImageCmsProfile, output: ~PIL.ImageCms.ImageCmsProfile, input_mode: str, output_mode: str, intent: ~PIL.ImageCms.Intent = Intent.PERCEPTUAL, proof: ~PIL.ImageCms.ImageCmsProfile | None = None, proof_intent: ~PIL.ImageCms.Intent = Intent.ABSOLUTE_COLORIMETRIC, flags: ~PIL.ImageCms.Flags = <Flags.NONE: 0>)[source]¶
-
变换。它可以与过程化 API 或标准
point()
方法一起使用。将返回
output.info['icc_profile']
中的输出配置文件。
常量¶
- class PIL.ImageCms.Intent(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
基类:
IntEnum
- PERCEPTUAL = 0¶
- RELATIVE_COLORIMETRIC = 1¶
- SATURATION = 2¶
- ABSOLUTE_COLORIMETRIC = 3¶
- class PIL.ImageCms.Direction(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
基类:
IntEnum
- INPUT = 0¶
- OUTPUT = 1¶
- PROOF = 2¶
- class PIL.ImageCms.Flags(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
基类:
IntFlag
标志和文档取自
lcms2.h
。- NONE = 0¶
- NOCACHE = 64¶
禁止 1 像素缓存
- NOOPTIMIZE = 256¶
禁止优化
- NULLTRANSFORM = 512¶
不要进行转换
- GAMUTCHECK = 4096¶
超出色域报警
- SOFTPROOFING = 16384¶
执行软打样
- BLACKPOINTCOMPENSATION = 8192¶
- NOWHITEONWHITEFIXUP = 4¶
不要修复脏点
- HIGHRESPRECALC = 1024¶
使用更多内存以获得更高的精度
- LOWRESPRECALC = 2048¶
使用更少的内存以最大程度地减少资源
- USE_8BITS_DEVICELINK = 8¶
创建 8 位设备链接
- GUESSDEVICECLASS = 32¶
猜测设备类别(用于
transform2devicelink
)
- KEEP_SEQUENCE = 128¶
为设备链接创建保留配置文件序列
- FORCE_CLUT = 2¶
强制 CLUT 优化
- CLUT_POST_LINEARIZATION = 1¶
如果可能,创建后线性化表
- CLUT_PRE_LINEARIZATION = 16¶
如果可能,创建前线性化表
- NONEGATIVES = 32768¶
防止浮点转换中的负数
- COPY_ALPHA = 67108864¶
Alpha 通道在
cmsDoTransform()
上被复制
- NODEFAULTRESOURCEDEF = 16777216¶
函数¶
- PIL.ImageCms.applyTransform(im: Image, transform: ImageCmsTransform, inPlace: bool = False) Image | None [source]¶
(pyCMS) 将变换应用于给定图像。
如果
im.mode != transform.input_mode
,则会引发PyCMSError
。如果
inPlace
为True
并且transform.input_mode != transform.output_mode
,则会引发PyCMSError
。如果
im.mode
、transform.input_mode
或transform.output_mode
不受 pyCMSdll 或您用于变换的配置文件支持,则会引发PyCMSError
。如果在应用变换时发生错误,则会引发
PyCMSError
。此函数将预先计算的变换(来自 ImageCms.buildTransform() 或 ImageCms.buildTransformFromOpenProfiles())应用于图像。该变换可用于多个图像,如果多次执行相同的转换,则可以节省大量的计算时间。
如果您希望就地修改 im 而不是接收新的图像作为返回值,请将
inPlace
设置为True
。这只有在transform.input_mode
和transform.output_mode
相同时才可进行,因为我们无法就地更改模式(某些模式的缓冲区大小不同)。默认行为是返回一个新的Image
对象,该对象具有相同尺寸,并以transform.output_mode
模式。- 参数:
- 返回:
根据
inPlace
的值,返回None
或新的Image
对象。配置文件将返回到图像的info['icc_profile']
中。- 引发:
- PIL.ImageCms.buildProofTransform(inputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, outputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, proofProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, inMode: str, outMode: str, renderingIntent: ~PIL.ImageCms.Intent = Intent.PERCEPTUAL, proofRenderingIntent: ~PIL.ImageCms.Intent = Intent.ABSOLUTE_COLORIMETRIC, flags: ~PIL.ImageCms.Flags = <Flags.SOFTPROOFING: 16384>) ImageCmsTransform [source]¶
(pyCMS) 创建 ICC 变换,将
inputProfile
映射到outputProfile
,但尝试模拟在proofProfile
设备上获得的结果。如果指定的输入、输出或校样配置文件不是有效的文件名,则会引发
PyCMSError
。如果在创建变换期间发生错误,则会引发
PyCMSError
。如果
inMode
或outMode
不是outputProfile
(或 pyCMS)支持的模式,则会引发PyCMSError
。此函数从
inputProfile
到outputProfile
创建并返回 ICC 变换,但尝试使用renderingIntent
和proofRenderingIntent
模拟在proofProfile
设备上获得的结果,以确定如何处理超出色域的颜色。这被称为“软校样”。它仅适用于将inMode
中的图像转换为outMode
颜色格式(PIL 模式,即“RGB”、“RGBA”、“CMYK”等)的图像。结果变换对象的用法与 ImageCms.buildTransform() 完全相同。
校样配置通常用于使用输出设备来了解最终打印/显示的图像在
proofProfile
设备上的显示效果,尤其是在使用输出设备判断颜色更快捷方便时。通常,这意味着输出设备是显示器或染料升华打印机(等),而模拟设备则是更昂贵、更复杂或耗时的设备(难以进行真实的打印以进行颜色判断)。软校样基本上通过调整输出设备上的颜色来匹配正在模拟的设备的颜色来发挥作用。但是,当模拟设备的色域远大于输出设备时,您可能会得到边际结果。
- 参数:
inputProfile – 字符串,作为您希望为此变换使用的 ICC 输入配置文件的有效文件名路径,或配置文件对象
outputProfile – 字符串,作为您希望为此变换使用的 ICC 输出(通常为显示器)配置文件的有效文件名路径,或配置文件对象
proofProfile – 字符串,作为您希望为此变换使用的 ICC 校样配置文件的有效文件名路径,或配置文件对象
inMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
outMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
renderingIntent –
整数(0-3),指定您希望用于输入->校样(模拟)变换的渲染意图
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
有关渲染意图及其功能的详细信息,请参阅 pyCMS 文档。
proofRenderingIntent –
整数(0-3),指定您希望用于校样->输出变换的渲染意图
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
有关渲染意图及其功能的详细信息,请参阅 pyCMS 文档。
flags – 整数(0-...),指定其他标志
- 返回:
CmsTransform 类对象。
- 引发:
- PIL.ImageCms.buildProofTransformFromOpenProfiles(inputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, outputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, proofProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, inMode: str, outMode: str, renderingIntent: ~PIL.ImageCms.Intent = Intent.PERCEPTUAL, proofRenderingIntent: ~PIL.ImageCms.Intent = Intent.ABSOLUTE_COLORIMETRIC, flags: ~PIL.ImageCms.Flags = <Flags.SOFTPROOFING: 16384>) ImageCmsTransform ¶
(pyCMS) 创建 ICC 变换,将
inputProfile
映射到outputProfile
,但尝试模拟在proofProfile
设备上获得的结果。如果指定的输入、输出或校样配置文件不是有效的文件名,则会引发
PyCMSError
。如果在创建变换期间发生错误,则会引发
PyCMSError
。如果
inMode
或outMode
不是outputProfile
(或 pyCMS)支持的模式,则会引发PyCMSError
。此函数从
inputProfile
到outputProfile
创建并返回 ICC 变换,但尝试使用renderingIntent
和proofRenderingIntent
模拟在proofProfile
设备上获得的结果,以确定如何处理超出色域的颜色。这被称为“软校样”。它仅适用于将inMode
中的图像转换为outMode
颜色格式(PIL 模式,即“RGB”、“RGBA”、“CMYK”等)的图像。结果变换对象的用法与 ImageCms.buildTransform() 完全相同。
校样配置通常用于使用输出设备来了解最终打印/显示的图像在
proofProfile
设备上的显示效果,尤其是在使用输出设备判断颜色更快捷方便时。通常,这意味着输出设备是显示器或染料升华打印机(等),而模拟设备则是更昂贵、更复杂或耗时的设备(难以进行真实的打印以进行颜色判断)。软校样基本上通过调整输出设备上的颜色来匹配正在模拟的设备的颜色来发挥作用。但是,当模拟设备的色域远大于输出设备时,您可能会得到边际结果。
- 参数:
inputProfile – 字符串,作为您希望为此变换使用的 ICC 输入配置文件的有效文件名路径,或配置文件对象
outputProfile – 字符串,作为您希望为此变换使用的 ICC 输出(通常为显示器)配置文件的有效文件名路径,或配置文件对象
proofProfile – 字符串,作为您希望为此变换使用的 ICC 校样配置文件的有效文件名路径,或配置文件对象
inMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
outMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
renderingIntent –
整数(0-3),指定您希望用于输入->校样(模拟)变换的渲染意图
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
有关渲染意图及其功能的详细信息,请参阅 pyCMS 文档。
proofRenderingIntent –
整数(0-3),指定您希望用于校样->输出变换的渲染意图
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
有关渲染意图及其功能的详细信息,请参阅 pyCMS 文档。
flags – 整数(0-...),指定其他标志
- 返回:
CmsTransform 类对象。
- 引发:
- PIL.ImageCms.buildTransform(inputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, outputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, inMode: str, outMode: str, renderingIntent: ~PIL.ImageCms.Intent = Intent.PERCEPTUAL, flags: ~PIL.ImageCms.Flags = <Flags.NONE: 0>) ImageCmsTransform [source]¶
(pyCMS) 构建一个从
inputProfile
到outputProfile
的 ICC 转换映射。 使用 applyTransform 将转换应用于给定图像。如果指定的输入或输出配置文件不是有效的文件名,则会引发
PyCMSError
。 如果在创建转换期间发生错误,则会引发PyCMSError
。如果
inMode
或outMode
不是outputProfile
(或 pyCMS)支持的模式,则会引发PyCMSError
。此函数使用
renderingIntent
构建并返回一个从inputProfile
到outputProfile
的 ICC 转换,以确定如何处理超出色域的颜色。 它仅适用于将以inMode
格式的图像转换为以outMode
格式的图像(PIL 模式,例如“RGB”、“RGBA”、“CMYK”等)。构建转换是 ImageCms.profileToProfile() 中相当大一部分的开销,因此,如果您计划使用相同的输入/输出设置转换多个图像,这可以节省您的时间。 拥有一个转换对象后,它可以与 ImageCms.applyProfile() 一起使用来转换图像,而无需重新计算转换的查找表。
pyCMS 返回一个类对象而不是直接处理转换的原因是它需要跟踪转换所针对的 PIL 输入/输出模式。 这些属性存储在对象的
inMode
和outMode
属性中(如果您确实需要,可以手动覆盖它们,但我不知道何时有用,甚至是否有效)。- 参数:
inputProfile – 字符串,作为您希望为此变换使用的 ICC 输入配置文件的有效文件名路径,或配置文件对象
outputProfile – 字符串,作为您希望用于此转换的 ICC 输出配置文件的有效文件名路径,或配置文件对象
inMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
outMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
renderingIntent –
整数(0-3),指定您希望用于转换的渲染意图
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
有关渲染意图及其功能的详细信息,请参阅 pyCMS 文档。
flags – 整数(0-...),指定其他标志
- 返回:
CmsTransform 类对象。
- 引发:
- PIL.ImageCms.buildTransformFromOpenProfiles(inputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, outputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, inMode: str, outMode: str, renderingIntent: ~PIL.ImageCms.Intent = Intent.PERCEPTUAL, flags: ~PIL.ImageCms.Flags = <Flags.NONE: 0>) ImageCmsTransform ¶
(pyCMS) 构建一个从
inputProfile
到outputProfile
的 ICC 转换映射。 使用 applyTransform 将转换应用于给定图像。如果指定的输入或输出配置文件不是有效的文件名,则会引发
PyCMSError
。 如果在创建转换期间发生错误,则会引发PyCMSError
。如果
inMode
或outMode
不是outputProfile
(或 pyCMS)支持的模式,则会引发PyCMSError
。此函数使用
renderingIntent
构建并返回一个从inputProfile
到outputProfile
的 ICC 转换,以确定如何处理超出色域的颜色。 它仅适用于将以inMode
格式的图像转换为以outMode
格式的图像(PIL 模式,例如“RGB”、“RGBA”、“CMYK”等)。构建转换是 ImageCms.profileToProfile() 中相当大一部分的开销,因此,如果您计划使用相同的输入/输出设置转换多个图像,这可以节省您的时间。 拥有一个转换对象后,它可以与 ImageCms.applyProfile() 一起使用来转换图像,而无需重新计算转换的查找表。
pyCMS 返回一个类对象而不是直接处理转换的原因是它需要跟踪转换所针对的 PIL 输入/输出模式。 这些属性存储在对象的
inMode
和outMode
属性中(如果您确实需要,可以手动覆盖它们,但我不知道何时有用,甚至是否有效)。- 参数:
inputProfile – 字符串,作为您希望为此变换使用的 ICC 输入配置文件的有效文件名路径,或配置文件对象
outputProfile – 字符串,作为您希望用于此转换的 ICC 输出配置文件的有效文件名路径,或配置文件对象
inMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
outMode – 字符串,作为适当配置文件也支持的有效 PIL 模式(即“RGB”、“RGBA”、“CMYK”等)
renderingIntent –
整数(0-3),指定您希望用于转换的渲染意图
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
有关渲染意图及其功能的详细信息,请参阅 pyCMS 文档。
flags – 整数(0-...),指定其他标志
- 返回:
CmsTransform 类对象。
- 引发:
- PIL.ImageCms.createProfile(colorSpace: Literal['LAB', 'XYZ', 'sRGB'], colorTemp: SupportsFloat = 0) CmsProfile [source]¶
(pyCMS) 创建一个配置文件。
如果 colorSpace 不在
["LAB", "XYZ", "sRGB"]
中,则会引发PyCMSError
。如果使用 LAB 且
colorTemp
不是正整数,则会引发PyCMSError
。如果在创建配置文件时发生错误,则会引发
PyCMSError
。使用此函数动态创建通用配置文件,而不是必须提供磁盘上的配置文件并知道其路径。 它返回一个正常的 CmsProfile 对象,可以将其传递给 ImageCms.buildTransformFromOpenProfiles() 以创建一个用于应用于图像的转换。
- 参数:
colorSpace – 字符串,您希望创建的配置文件的颜色空间。 目前仅支持“LAB”、“XYZ”和“sRGB”。
colorTemp – 配置文件白点的正数,以开尔文为单位(例如 5000、6500、9600 等)。 如果省略,则默认为 D50 光源(5000k)。 colorTemp 仅应用于 LAB 配置文件,而 XYZ 和 sRGB 忽略它。
- 返回:
CmsProfile 类对象
- 引发:
- PIL.ImageCms.getDefaultIntent(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile) int [source]¶
(pyCMS) 获取给定配置文件的默认意图名称。
如果
profile
不是有效的 CmsProfile 对象或配置文件的文件名,则会引发PyCMSError
。如果在尝试获取默认意图时发生错误,则会引发
PyCMSError
。使用此函数确定此配置文件的默认(通常也是最佳优化的)渲染意图。 大多数配置文件支持多种渲染意图,但主要针对一种转换类型。 如果您希望使用与返回结果不同的意图,请使用 ImageCms.isIntentSupported() 首先验证它是否有效。
- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
- 返回:
整数 0-3,指定此配置文件的默认渲染意图。
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
- 有关渲染意图及其工作原理的详细信息,请参见 pyCMS 文档。
。
- 引发:
- PIL.ImageCms.getOpenProfile(profileFilename: str | SupportsRead[bytes] | CmsProfile) ImageCmsProfile [source]¶
(pyCMS) 打开一个 ICC 配置文件。
PyCMSProfile 对象可以传回 pyCMS 用于创建转换等操作(如 ImageCms.buildTransformFromOpenProfiles())。
如果
profileFilename
不是 ICC 配置文件的有效文件名,则会引发PyCMSError
。- 参数:
profileFilename – 字符串,作为要打开的 ICC 配置文件的有效文件名路径,或类文件对象。
- 返回:
CmsProfile 类对象。
- 引发:
- PIL.ImageCms.getProfileCopyright(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile) str [source]¶
(pyCMS) 获取给定配置的版权。
如果
profile
不是有效的 CmsProfile 对象或配置文件的文件名,则会引发PyCMSError
。如果在尝试获取版权标签时发生错误,则会引发
PyCMSError
。使用此函数获取存储在配置文件版权标签中的信息。
- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
- 返回:
包含存储在 ICC 标签中的配置文件内部信息的字符串。
- 引发:
- PIL.ImageCms.getProfileDescription(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile) str [source]¶
(pyCMS) 获取给定配置的描述。
如果
profile
不是有效的 CmsProfile 对象或配置文件的文件名,则会引发PyCMSError
。如果在尝试获取描述标签时发生错误,则会引发
PyCMSError
。使用此函数获取存储在配置文件描述标签中的信息。
- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
- 返回:
包含存储在 ICC 标签中的配置文件内部信息的字符串。
- 引发:
- PIL.ImageCms.getProfileInfo(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile) str [source]¶
(pyCMS) 获取给定配置的内部产品信息。
如果
profile
不是有效的 CmsProfile 对象或配置文件的文件名,则会引发PyCMSError
。如果在尝试获取信息标签时发生错误,则会引发
PyCMSError
。使用此函数获取存储在配置文件信息标签中的信息。这通常包含有关配置文件的信息以及创建方式,这些信息由创建者提供。
- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
- 返回:
包含存储在 ICC 标签中的配置文件内部信息的字符串。
- 引发:
- PIL.ImageCms.getProfileManufacturer(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile) str [source]¶
(pyCMS) 获取给定配置的制造商。
如果
profile
不是有效的 CmsProfile 对象或配置文件的文件名,则会引发PyCMSError
。如果在尝试获取制造商标签时发生错误,则会引发
PyCMSError
。使用此函数获取存储在配置文件制造商标签中的信息。
- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
- 返回:
包含存储在 ICC 标签中的配置文件内部信息的字符串。
- 引发:
- PIL.ImageCms.getProfileModel(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile) str [source]¶
(pyCMS) 获取给定配置的型号。
如果
profile
不是有效的 CmsProfile 对象或配置文件的文件名,则会引发PyCMSError
。如果在尝试获取型号标签时发生错误,则会引发
PyCMSError
。使用此函数获取存储在配置文件型号标签中的信息。
- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
- 返回:
包含存储在 ICC 标签中的配置文件内部信息的字符串。
- 引发:
- PIL.ImageCms.getProfileName(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile) str [source]¶
(pyCMS) 获取给定配置文件的内部产品名称。
如果
profile
不是有效的 CmsProfile 对象或配置文件的名称,则会引发PyCMSError
。如果在尝试获取名称标签时发生错误,则会引发PyCMSError
。使用此函数来获取配置文件的内部名称(存储在配置文件本身的 ICC 标签中),通常是配置文件最初创建时使用的名称。有时此标签还会包含创建者提供的其他信息。
- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
- 返回:
包含配置文件内部名称的字符串,如存储在 ICC 标签中。
- 引发:
- PIL.ImageCms.get_display_profile(handle: SupportsInt | None = None) ImageCmsProfile | None [source]¶
(实验性) 获取当前显示设备的配置文件。
- 返回:
如果配置文件未知,则返回
None
。
- PIL.ImageCms.isIntentSupported(profile: str | SupportsRead[bytes] | CmsProfile | ImageCmsProfile, intent: Intent, direction: Direction) Literal[-1, 1] [source]¶
(pyCMS) 检查给定的渲染意图是否受支持。
使用此函数来验证你是否可以将你想要的
intent
与profile
一起使用,以及profile
是否可以按你想要的方式用于输入/输出/校样配置文件。一些配置文件专门为一个“方向”创建,不能用于其他方向。有些配置文件只能用于某些渲染意图,因此最好在尝试使用它们创建变换之前验证这一点(使用此函数),或者捕获可能会发生的
PyCMSError
(如果它们不支持你选择的模式)。- 参数:
profile – 有效的 CmsProfile 对象或 ICC 配置文件的文件名字符串。
intent –
整数(0-3),指定要与此配置文件一起使用的渲染意图。
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
- 有关渲染意图及其工作原理的详细信息,请参见 pyCMS 文档。
。
direction –
整数,指定配置文件是用于输入、输出还是校样。
INPUT = 0(或使用 ImageCms.Direction.INPUT) OUTPUT = 1(或使用 ImageCms.Direction.OUTPUT) PROOF = 2(或使用 ImageCms.Direction.PROOF)
- 返回:
如果渲染意图/方向受支持,则返回 1;如果不受支持,则返回 -1。
- 引发:
- PIL.ImageCms.profileToProfile(im: ~PIL.Image.Image, inputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, outputProfile: str | ~PIL._typing.SupportsRead[bytes] | ~PIL.ImageCms.core.CmsProfile | ~PIL.ImageCms.ImageCmsProfile, renderingIntent: ~PIL.ImageCms.Intent = Intent.PERCEPTUAL, outputMode: str | None = None, inPlace: bool = False, flags: ~PIL.ImageCms.Flags = <Flags.NONE: 0>) Image | None [source]¶
(pyCMS) 对给定图像应用 ICC 变换,从
inputProfile
映射到outputProfile
。如果指定的输入或输出配置文件不是有效的文件名,则会引发
PyCMSError
。如果inPlace
为True
且outputMode != im.mode
,则会引发PyCMSError
。如果在应用配置文件期间发生错误,则会引发PyCMSError
。如果outputMode
不是outputProfile
(或 pyCMS)支持的模式,则会引发PyCMSError
。此函数对 im 应用 ICC 变换,从
inputProfile
的颜色空间转换到outputProfile
的颜色空间,使用指定的渲染意图来决定如何处理超出色域的颜色。outputMode
可用于指定使用这些配置文件执行颜色模式转换,但指定的配置文件必须能够处理该模式。例如,如果使用配置文件将 im 从 RGB 转换为 CMYK,则输入配置文件必须能够处理 RGB 数据,而输出配置文件必须能够处理 CMYK 数据。- 参数:
im – 打开的
Image
对象(例如 Image.new(…) 或 Image.open(…), etc.)inputProfile – 字符串,表示要用于此图像的 ICC 输入配置文件的有效文件名路径,或配置文件对象
outputProfile – 字符串,表示要用于此图像的 ICC 输出配置文件的有效文件名路径,或配置文件对象
renderingIntent –
整数(0-3),指定您希望用于转换的渲染意图
ImageCms.Intent.PERCEPTUAL = 0 (默认) ImageCms.Intent.RELATIVE_COLORIMETRIC = 1 ImageCms.Intent.SATURATION = 2 ImageCms.Intent.ABSOLUTE_COLORIMETRIC = 3
有关渲染意图及其功能的详细信息,请参阅 pyCMS 文档。
outputMode – 输出图像的有效 PIL 模式(例如,“RGB”、“CMYK”等)。注意:如果“就地”渲染图像,则 outputMode 必须与输入模式相同,或者完全省略。如果省略,则 outputMode 将与输入图像的模式相同(im.mode)
inPlace – 布尔值。如果为
True
,则修改原始图像,并返回None
。如果为False
(默认值),则返回一个新的Image
对象,其中应用了变换。flags – 整数(0-...),指定其他标志
- 返回:
根据
inPlace
的值,返回 None 或新的Image
对象。- 引发:
CmsProfile¶
ICC 颜色配置文件封装在 CmsProfile
类实例中。ICC.1:2010 规范包含有关 ICC 配置文件中值含义的更多信息。
为了方便起见,所有 XYZ 值也以 xyY 值给出(因此它们可以轻松地在色度图中显示,例如)。
- class PIL.ImageCms.core.CmsProfile¶
- creation_date: datetime.datetime | None¶
此配置文件首次创建的日期和时间(请参阅 ICC.1:2010 的 7.2.1)。
- device_class: str¶
标识配置文件类的 4 个字符的字符串。其中之一为
scnr
、mntr
、prtr
、link
、spac
、abst
、nmcl
(有关详细信息,请参阅 ICC.1:2010 的 7.2.5)。
- header_manufacturer: str¶
标识设备制造商的 4 个字符的字符串(用空格填充),应与 www.color.org 上 ICC 签名注册表相应部分中包含的签名相匹配(请参阅 ICC.1:2010 的 7.2.12)。
- header_model: str¶
标识设备型号的 4 个字符的字符串(用空格填充),应与 www.color.org 上 ICC 签名注册表相应部分中包含的签名相匹配(请参阅 ICC.1:2010 的 7.2.13)。
- rendering_intent: int¶
将此配置文件与另一个配置文件组合时要使用的渲染意图(通常在运行时被覆盖,但在此处为 DeviceLink 和嵌入式源配置文件提供,请参阅 ICC.1:2010 的 7.2.15)。
其中之一为
ImageCms.Intent.ABSOLUTE_COLORIMETRIC
、ImageCms.Intent.PERCEPTUAL
、ImageCms.Intent.RELATIVE_COLORIMETRIC
和ImageCms.Intent.SATURATION
。
- profile_id: bytes¶
标识配置文件的 16 个字节序列(通过专门构建的 MD5 检验和),或者如果未计算配置文件 ID,则为 16 个二进制零(请参阅 ICC.1:2010 的 7.2.18)。
- red_colorant: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
在矩阵/TRC 变换中使用的矩阵的第一列(参见 ICC.1:2010 的 9.2.44)。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- green_colorant: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
在矩阵/TRC 变换中使用的矩阵的第二列(参见 ICC.1:2010 的 9.2.30)。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- blue_colorant: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
在矩阵/TRC 变换中使用的矩阵的第三列(参见 ICC.1:2010 的 9.2.4)。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- luminance: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
发射设备的绝对亮度,以坎德拉每平方米为单位,由 Y 通道描述(参见 ICC.1:2010 的 9.2.32)。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- chromaticity: tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]] | None¶
使用的磷光体/色料色度集的数据(红色、绿色和蓝色通道,参见 ICC.1:2010 的 9.2.16)。
如果可用,该值采用
((x, y, Y), (x, y, Y), (x, y, Y))
格式。
- chromatic_adaption: tuple[tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]], tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]]] | None¶
色度适应矩阵将使用实际照明条件并相对于实际采用的白色测量的颜色转换为相对于 PCS 采用的白色的颜色,从实际采用的白色色度完全适应到 PCS 采用的白色色度(参见 ICC.1:2010 的 9.2.15)。
在 2 元组中返回两个浮点数的 3 元组,一个在 (X, Y, Z) 空间中,另一个在 (x, y, Y) 空间中。
- colorant_table_out: list[str]¶
此标记通过唯一名称和一组 PCSLAB 值来标识配置文件中使用的色料(仅限 DeviceLink 配置文件,参见 ICC.1:2010 的 9.2.19)。
- colorimetric_intent: str | None¶
4 个字符的字符串(用空格填充),标识使用色度意图转换产生的 PCS 色度图像状态(有关详细信息,参见 ICC.1:2010 的 9.2.20)。
- perceptual_rendering_intent_gamut: str | None¶
4 个字符的字符串(用空格填充),标识(一个)标准参考介质色域(有关详细信息,参见 ICC.1:2010 的 9.2.37)。
- saturation_rendering_intent_gamut: str | None¶
4 个字符的字符串(用空格填充),标识(一个)标准参考介质色域(有关详细信息,参见 ICC.1:2010 的 9.2.37)。
- media_black_point: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
此标记指定介质黑点,用于生成绝对色度。
此标记在 ICC 3.2 中可用,但在版本 4 中已删除。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- red_primary: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
RGB 主颜色红色 (1, 0, 0) 的 XYZ 转换。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- green_primary: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
RGB 主颜色绿色 (0, 1, 0) 的 XYZ 转换。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- blue_primary: tuple[tuple[float, float, float], tuple[float, float, float]] | None¶
RGB 主颜色蓝色 (0, 0, 1) 的 XYZ 转换。
如果可用,该值采用
((X, Y, Z), (x, y, Y))
格式。
- clut: dict[int, tuple[bool, bool, bool]] | None¶
返回 CLUT 模型所有支持的意图和方向的字典。
该字典以意图为索引(
ImageCms.Intent.ABSOLUTE_COLORIMETRIC
、ImageCms.Intent.PERCEPTUAL
、ImageCms.Intent.RELATIVE_COLORIMETRIC
和ImageCms.Intent.SATURATION
)。这些值是以方向为索引的 3 元组(
ImageCms.Direction.INPUT
、ImageCms.Direction.OUTPUT
、ImageCms.Direction.PROOF
)。元组的元素是布尔值。如果值为
True
,则该意图支持该方向。
- intent_supported: dict[int, tuple[bool, bool, bool]] | None¶
返回所有支持的意图和方向的字典。
该字典以意图为索引(
ImageCms.Intent.ABSOLUTE_COLORIMETRIC
、ImageCms.Intent.PERCEPTUAL
、ImageCms.Intent.RELATIVE_COLORIMETRIC
和ImageCms.Intent.SATURATION
)。这些值是以方向为索引的 3 元组(
ImageCms.Direction.INPUT
、ImageCms.Direction.OUTPUT
、ImageCms.Direction.PROOF
)。元组的元素是布尔值。如果值为
True
,则该意图支持该方向。
类中定义了一个函数
- is_intent_supported(intent: int, direction: int, /)¶
返回该意图是否支持给定方向。
请注意,您也可以使用
intent_supported
获取所有意图和方向的此信息。- 参数:
intent –
ImageCms.Intent.ABSOLUTE_COLORIMETRIC
、ImageCms.Intent.PERCEPTUAL
、ImageCms.Intent.RELATIVE_COLORIMETRIC
和ImageCms.Intent.SATURATION
中的一个。direction –
ImageCms.Direction.INPUT
、ImageCms.Direction.OUTPUT
和ImageCms.Direction.PROOF
中的一个
- 返回:
如果意图和方向受支持,则为布尔值。