Image Rendering supports color space conversions based on color space profiles conforming to the ICC (International Color Consortium) specification.
Restrictions
Only CMYK, RGB, and gray-scale color spaces are supported at this time.
Cabinet style files (.vnc) and window coverings style files ( .vnw) are not color-managed and are assumed to exist in the working color space.
See also
International Color Consortium , icc=
, iccEmbed=
, attribute::IccProfile*
, attribute::IccProfileSrc*
, attribute::IccRenderIntent
, attribute::IccBlackPointCompensation
, attribute::IccDither
, ICC Profile Maps
Each image catalog (and the default catalog) can define a set of ICC profiles. These profiles constitute the default color spaces for this catalog - one input and one output profile each for gray-scale, RGB, and CMYK data ( attribute::IccProfileRgb
, attribute::IccProfileGray
, attribute::IccProfileCmyk
, attribute::IccProfileSrcRgb
, attribute::IccProfileSrcGray
, and attribute::IccProfileSrcCmyk
).
The default color space for a particular image or other object is selected from the catalog default profiles based on the pixel type of the image.
Material images may embed ICC profiles to define the input color space. If no profile is embedded in a source image, attribute::IccProfileSrc*
of the applicable image catalog corresponding to the pixel type of the source image is used. If this attribute is not defined in the image catalog, attribute::IccProfile*
is used. If that catalog attribute is not defined either, the image is not color-managed and only naïve transforms are applied.
Typically, the working color space is defined by the ICC color profile embedded in the vignette. If the vignette does not include a profile, the default RGB input profile ( attribute::IccProfileSrcRgb
of the session catalog) is used for the working color space.
All render operations are executed in the working color space.
Important: The ICC profile for the working color space must support input and output transformations. If an output-only profile is used as a working color space IR will not be able to convert materials to it. Such a color profile may still be used if materials exist in the same working color space. Attempting to apply materials in other color spaces will fail.
RGB color values specified with color=
, bgc=
, catalog::BgColor
, and catalog::Color
are assumed to exist in the current working color space.
Material image files (texture and decal images) can have RGB, gray-scale, or CMYK pixel type and can embed a color profile. If no color profile is embedded, the default input color space is associated with the image (for example, the color profile from the material catalog which corresponds to the pixel type of the image).
Material images obtained from nested Image Serving or Image Rendering requests typically include a color profile. If this is not the case, the images are associated with the default input color space corresponding to the pixel type.
If the color space of the image file is different than the working color space, accurate color conversion is used to convert to the working color space. Naïve type conversion is used when no profile is embedded and no default input profile is defined.
Other material data files, such as cabinet style files ( .vnc) or window covering files ( .vnw) do not embed color profiles and are always assumed to be in the working color space.
All render operations take place in the working color space. If the request specifies a different color profile with the icc=
command, the data is converted to that color space just before it is encoded and returned to the client. When color management is disabled, naïve conversion is used if necessary to convert to gray-scale or CMYK.
The color profile associated with the rendered image can be embedded into the response image by specifying iccEmbed=
for the request.
If icc=
is not specified, the ICC profile for the working color space is embedded. No profile is embedded if color management is disabled and no profile was specified with icc=
.
All color profiles used by the server must conform to the ICC specification. ICC profile files typically have an .icc or .icm file suffix and are co-located with material data files.
While output profiles can be specified by file path/name in the icc=
command, it is recommended to register all profile files in the ICC Profile Map of the default catalog or a specific material catalog and use shortcut identifiers ( icc::Name
) instead of file paths.
Working profiles must be registered in the ICC Profile Map of the material catalog or the default catalog.