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
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.
kind:method, kind:property, kind:ctor. Press Esc to clear.IccColorManagement(IColorManagement?)Initializes a new instance of the IccColorManagement class.CacheCapacityThe most profiles kept; when more arrive the cache starts afresh.CompensatesBlackPointByDefaultGets a value indicating whether black point compensation applies when the graphics state leaves it to the processor (UseBlackPtComp Default, or absent). true unless changed.FallbackGets the colour management for every source the engine does not convert itself.RgbProfileGets the profile of the RGB colours the engine converts to; Srgb unless another is chosen.UsesOutputIntentsGets a value indicating whether device colours convert through the content's output intent profile. true unless changed.WithDefaultBlackPointCompensation(Boolean)Returns an engine that decides black point compensation the other way when the graphics state leaves it to the processor.WithOutputIntents(Boolean)Returns an engine that uses or disregards output intents.WithRgbProfile(IccProfile)Returns an engine that converts to another RGB profile.