What calibrations are used when ripping a PDPage in memory?
Estimated Reading Time: 2 MinutesAPDFL lets the client define the output color spaces. The APIs in Adobe PDF Library that set the default output color spaces are:
PDPrefSetWorkingRGB PDPrefSetWorkingCMYK PDPrefSetWorkingGray
These allow the client application to pass in an ICC profile.
We can see thousands of different shades of colors, and high-quality digital cameras and scanners can often detect millions of shades. To manage the broad range of colors for producing graphics images in digital content, imaging professionals have developed models to define these colors, called color spaces.
Many color spaces have been defined. Some are dependent on hardware devices, and define what a camera can detect, or a printer print, or a monitor display. Others are based on software and thus can be used across many different kinds of devices, such as Adobe RGB or sRGB (standard RGB). A color space must be defined for any device or software product in order to make sure that coloring patterns remain the same from one device or system to another.
These APIs set both the working profile and the output profile. It is not possible to set the working profile and output profile independently.
Regarding the API called PDPageDrawContentsToMemory , the output profile for DeviceRGB space is set to the default profile, sRGB. It is not affected by the value set by PDPrefSetWorkingRGB.
The DeviceCMYK and DeviceGray spaces will use the overridden values. Also note that PDPageDrawContentsToMemory will always perform a relative colorimetric conversion. If the client application does not call the PDPref APIs, APDFL uses built-in default output color spaces:
- The default gray color space is a CalGray space with a D65 white point and a gamma of 2.2.
- The default RGB color space is the sRGB profile.
- The default CMYK color space is the "Reader 9 CMYK" profile, a simplified version of the "US Web Coated (SWOP) v2" profile.
These colorspaces are used when uncalibrated input colorspaces are used.
Please note that while PDPageDrawContentsToMemory does not allow the use of an ICC profile as a target, the PDPageDrawContentsToMemoryWithParams API does allow it.