Image Serving supports color space conversions based on color space profiles conforming to the ICC (International Color Consortium) specification.
Each image catalog (and the default catalog) can define a set of ICC profiles which constitute the default color spaces for this catalog - one input and one output profile each for gray-scale, RGB, and CMYK data. See
attribute::IccProfileRgb
attribute::IccProfileGray
attribute::IccProfileCmyk
attribute::IccProfileSrcRgb
attribute::IccProfileSrcGray
attribute::IccProfileSrcCmyk.
Source 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.
The color space of the final image result of a request is defined with the icc=
command. If icc=
is not specified, the default output color space (from the request’s main catalog) which corresponds to the pixel type of the output image is used as the output color space. If no output profile is defined in the main or default catalog, and if the base layer is an image with an embedded profile matching the output pixel type, then that profile is used for the output color space. Otherwise, the output color space remains undefined – only naïve color conversions are applied when converting between pixel types and no color profile can be embedded in the output image.
The output color space of a nested/embedded Image Serving request is always the same as the output color space of the outer, embedding request.
Color values specified with color=
, bgcolor=
, or the RTF command \iscolortbl
are associated with the input color space if the color value includes the suffix ‘S’, otherwise they are associated with the output color space. Color values specified with bgc=
or the RTF commands \colortbl
and \cmykcolortbl
are always associated with the corresponding default or actual output color space.
At this time, bgc=
does not fully participate in color management-the ‘S’ suffix is ignored when specified with bgc=
, and naïve conversion is applied when the pixel type of the color value specified with bgc=
differs from the pixel type of the output image. Otherwise, bgc=
is associated with the actual output color space.
The output color space for nested IS requests and embedded IR requests is automatically set to the output color space of the outermost request, unless the nested request specifies an explicit output color space with icc=
. In addition, nested/embedded requests also inherit the default output color spaces from the main catalog of the outermost request, to ensure consistent handling of solid color values.
Image Serving generally attempts to delay color conversions during processing. If all layers of an image have the same layer color space, conversion to the output color space is done after merging and final scaling. If multiple layer color spaces are involved, each layer is transformed to the output color space prior to merging.
The commands op_brightness=
, op_colorbalance=
, op_colorize=
, op_contrast=
, op_hue=
, and op_saturation=
are RGB operations. These operations maintain color fidelity only if the layer color space has RGB pixel type. If other than RGB, the data is converted to RGB using naïve color conversion, and the result will have limited color fidelity. The layer color space for such layers should be considered indeterminate.
Color conversion options are provided with icc=
or, if icc=
is not specified, with attribute::IccRenderIntent
, attribute::IccBlackPointCompensation
, and attribute::IccDither
.
The ICC color profile of the output color space, if available, can be embedded into the response image by specifying iccEmbed=
.
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 image 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 image catalog and use shortcut identifiers ( icc::Name
) instead of file paths.
All ICC profiles referenced in catalog::IccProfile
and in attribute::IccProfile*
must be registered in the ICC Profile Map of the image or default catalog.
Only CMYK, RGB, and gray-scale color spaces are supported at this time.
Image Serving includes most standard Adobe ICC profiles in the default image catalog. These profiles can be accessed by either their common names (e.g. as seen in Photoshop) or with a somewhat shorter identifier. The following table lists all standard ICC profiles. When referencing a profile in the icc=
command by its common name, spaces must be encoded as %20
.
Additional profiles may be added to the standard profiles, either to the default catalog or a specific image catalog. Refer to the ICC Profile Map Reference for details.
The following table applies to Dynamic Media Hybrid only (running in dynamicmedia
run mode).
Identifier | Common name | File name |
---|---|---|
RGB | ||
AdobeRGB |
Adobe RGB (1998) | AdobeRGB1998.icc |
AppleRGB |
Apple RGB | AppleRGB.icc |
CIERGB |
CIE RGB | CIERGB.icc |
ColorMatchRGB |
ColorMatch RGB | ColorMatchRGB.icc |
NTSC |
NTSC (1953) | NTSC1953.icc |
PAL |
PAL/SECAM | PAL_SECAM.icc |
ProPhoto |
ProPhoto RGB | ProPhoto.icm |
SMPTE |
SMPTE-C | SMPTE-C.icc |
sRGB |
sRGB IEC61966-2.1 | sRgb Color Space Profile.icm |
WideGamutRGB |
Wide Gamut RGB | WideGamutRGB.icc |
CMYK | ||
CoatedFogra27 |
Coated FOGRA27 (ISO 12647-2:2004) | CoatedFOGRA27.icc |
CoatedFogra39 |
Coated FOGRA39 (ISO 12647-2:2004) | CoatedFOGRA39.icc |
CoatedGraCol |
Coated GRACoL 2006 (ISO 12647-2:2004) | CoatedGRACoL2006.icc |
EuropeISOCoated |
Europe ISO Coated FOGRA27 | EuropeISOCoatedFOGRA27.icc |
EuroscaleCoated |
Euroscale Coated | EuroscaleCoated.icc |
EuroscaleUncoated |
Euroscale Uncoated v2 | EuroscaleUncoated.icc |
JapanColorCoated |
Japan Color 2001 Coated | JapanColor2001Coated.icc |
JapanColorNewspaper |
Japan Color 2002 Newspaper | JapanColor2002Newspaper.icc |
JapanColorUncoated |
Japan Color 2001 Uncoated | JapanColor2001Uncoated.icc |
JapanColorWebCoated |
Japan Color 2003 Web Coated | JapanColor2003WebCoated.icc |
JapanWebCoated |
Japan Web Coated (Ad) | JapanWebCoated.icc |
NewsprintSNAP2007 |
US Newsprint (SNAP 2007) | USNewsprintSNAP2007.icc |
PS4Default |
Photoshop 4 Default CMYK | Photoshop4DefaultCMYK.icc |
PS5Default |
Photoshop 5 Default CMYK | Photoshop5DefaultCMYK.icc |
SheetfedCoated |
U.S. Sheetfed Coated v2 | USSheetfedCoated.icc |
SheetfedUncoated |
U.S. Sheetfed Uncoated v2 | USSheetfedUncoated.icc |
UncoatedFogra29 |
Uncoated FOGRA29 (ISO 12647-2:2004) | UncoatedFOGRA29.icc |
WebCoated |
U.S. Web Coated (SWOP) v2 | USWebCoatedSWOP.icc |
WebCoatedFogra28 |
Web Coated FOGRA28 (ISO 12647-2:2004) | WebCoatedFOGRA28.icc |
WebCoatedGrade3 |
Web Coated SWOP 2006 Grade 3 Paper | WebCoatedSWOP2006Grade3.icc |
WebCoatedGrade5 |
Web Coated SWOP 2006 Grade 5 Paper | WebCoatedSWOP2006Grade5.icc |
WebUncoated |
U.S. Web Uncoated v2 | USWebUncoated.icc |
The following table applies to Dynamic Media Classic Image Serving and Dynamic Media (running in dynamicmedia_scene7
run mode).
Identifier | Common name | File name |
---|---|---|
RGB | ||
AdobeRGB |
Adobe RGB (1998) | AdobeRGB1998.icc |
AppleRGB |
Apple RGB | AppleRGB.icc |
`CIERGB | CIE RGB` | CIERGB.icc |
ColorMatchRGB |
ColorMatch RGB | ColorMatchRGB.icc |
NTSC |
NTSC (1953) | NTSC1953.icc |
PAL |
PAL/SECAM | PAL_SECAM.icc |
ProPhoto RGB |
ProPhoto RGB | ProPhoto RGB.icm |
SMPTE |
SMPTE-C | SMPTE-C.icc |
sRGB |
sRGB IEC61966-2.1 | sRgb Color Space Profile.icm |
WideGamutRGB |
Wide Gamut RGB | WideGamutRGB.icc |
CMYK | ||
CoatedFogra27 |
Coated FOGRA27 (ISO 12647-2:2004) | CoatedFOGRA27.icc |
CoatedFogra39 |
Coated FOGRA39 (ISO 12647-2:2004) | CoatedFOGRA39.icc |
Coated GRACoL 2006 (ISO 12647-2:2004) |
Coated GRACoL 2006 (ISO 12647-2:2004) | CoatedGRACoL2006.icc |
EuropeISOCoated |
Europe ISO Coated FOGRA27 | EuropeISOCoatedFOGRA27.icc |
Euroscale Coated v2 |
Euroscale Coated v2 | EuroscaleCoated.icc |
EuroscaleUncoated |
Euroscale Uncoated v2 | EuroscaleUncoated.icc |
JapanColorCoated |
Japan Color 2001 Coated | JapanColor2001Coated.icc |
JapanColorNewspaper |
Japan Color 2002 Newspaper | JapanColor2002Newspaper.icc |
JapanColorUncoated |
Japan Color 2001 Uncoated | JapanColor2001Uncoated.icc |
Japan Color 2003 Web Coated |
Japan Color 2003 Web Coated | JapanColor2003WebCoated.icc |
JapanWebCoated |
Japan Web Coated (Ad) | JapanWebCoated.icc |
PS4Default |
Photoshop 4 Default CMYK | Photoshop4DefaultCMYK.icc |
PS5Default |
Photoshop 5 Default CMYK | Photoshop5DefaultCMYK.icc |
SheetfedCoated |
U.S. Sheetfed Coated v2 | USSheetfedCoated.icc |
SheetfedUncoated |
U.S. Sheetfed Uncoated v2 | USSheetfedUncoated.icc |
UncoatedFogra29 |
Uncoated FOGRA29 (ISO 12647-2:2004) | UncoatedFOGRA29.icc |
US Newsprint (SNAP 2007) |
US Newsprint (SNAP 2007) | USNewsprintSNAP2007.icc |
WebCoated |
U.S. Web Coated (SWOP) v2 | USWebCoatedSWOP.icc |
WebCoatedFogra28 |
Web Coated FOGRA28 (ISO 12647-2:2004) | WebCoatedFOGRA28.icc |
Web Coated SWOP 2006 Grade 3 Paper |
Web Coated SWOP 2006 Grade 3 Paper | WebCoatedSWOP2006Grade3.icc |
Web Coated SWOP Grade 5 Paper |
Web Coated SWOP 2006 Grade 5 Paper | WebCoatedSWOP2006Grade5.icc |
WebUncoated |
U.S. Web Uncoated v2 | USWebUncoated.icc |
International Color Consortium, icc=, iccEmbed=, attribute::IccProfile*, attribute::IccProfileSrc*, attribute::IccRenderIntent, attribute::IccBlackPointCompensation, attribute::IccDither, ICC Profile Map Reference, color=, bgc=, color