IccColorManagement Class

Definition

The managed ICC engine behind the colour-management extension point: ICCBased gray, RGB and CMYK colours convert through their profiles' lookup tables, matrix/TRC or monochrome models to an RGB profile (Broadside's own sRGB unless another is chosen), with the rendering intent's tags and black point compensation; device colours convert through the output intent's profile when the content has one; every other source goes to the wrapped colour management.

public sealed class IccColorManagement : IColorManagement

Remarks

ISO 32000-2 §8.6.5.5 and §10.3, ICC.1:2022 §8.10.2, §10.10 to §10.13 and Annex F (see IccProfile). Register it with UseIccColorManagement(PdfOptions) or UseColorManagement(IColorManagement).

Rendering intents (§8.6.5.8): the intent of the conversion chooses the source's AToB tag and the destination's BToA tag (ICC.1:2022 Table 25); the absolute colorimetric intent keeps each medium's white (see IccProfile). Black point compensation (§8.6.5.9, PDF 2.0 Application Note 001, ISO 18619): applied when UseBlackPtComp is ON, never when it is OFF or the intent is absolute colorimetric, and when it is Default as CompensatesBlackPointByDefault says.

Output intents (§14.11.5): when OutputIntent has a usable profile and UsesOutputIntents is set, DeviceCMYK colours (and DeviceRGB or DeviceGray colours when the profile is RGB or gray) convert as if described by that profile, after default colour spaces (§8.6.5.6) had their chance; and when the target is the profile's own device (a CMYK target and a CMYK output intent), device colours of that kind pass through unchanged and ICCBased colours convert to the output intent's profile through its BToA tags. Without an output intent, device colours convert as the wrapped colour management converts them.

Device spaces, CalGray, CalRGB, Lab, and ICCBased spaces whose profile is a Lab colour space profile, of a version after 4, or unreadable go to the wrapped management, which converts them through their alternate (or, for a Lab profile, as Lab). A profile whose header is fine but whose tags cannot be read is recorded on the document as IccProfileInvalid through ReportProfileInvalid(String), as is a lookup table passed over for other tags of the profile; a bad header is already recorded when the space is read. Gray and CMYK targets other than an output intent's device convert the RGB result through the wrapped management's DeviceRGB conversion.

Profiles are read once and their transforms built once per destination, rendering intent and black point compensation, keyed by the profile's bytes, so the same profile embedded in many spaces or documents shares them; the cache keeps at most CacheCapacity profiles. Immutable and thread-safe; the With methods return new instances.

Tip: use kind:method, kind:property, kind:ctor. Press Esc to clear.

Constructors (1)

Fields (1)

Properties (4)

Methods (4)