NAME
im_icc_present, im_icc_transform, im_icc_import,
im_icc_import_embedded, im_icc_export, im_icc_export_depth - transform
images using ICC profiles
SYNOPSIS
#include <vips/vips.h>
#define VIPS_INTENT_PERCEPTUAL (0)
#define VIPS_INTENT_RELATIVE_COLORIMETRIC (1)
#define VIPS_INTENT_SATURATION (2)
#define VIPS_INTENT_ABSOLUTE_COLORIMETRIC (3)
int
im_icc_present( void )
int
im_icc_transform( IMAGE *in, IMAGE *out,
const char *input_profile_filename,
const char *output_profile_filename,
int intent )
int
im_icc_import( IMAGE *in, IMAGE *out,
const char *input_profile_filename, int intent )
int
im_icc_import_embedded( IMAGE *in, IMAGE *out,
int intent )
int
im_icc_export_depth( IMAGE *in, IMAGE *out, int depth,
const char *output_profile_filename, int intent )
int
im_icc_export( IMAGE *in, IMAGE *out,
const char *output_profile_filename, int intent )
int
im_icc_ac2rc( IMAGE *in, IMAGE *out,
const char *profile_filename )
DESCRIPTION
im_icc_present(3) returns non-zero if there is an ICC library
available. Calls to the other VIPS ICC functions will all fail with an
error message if there is no library.
im_icc_transform(3) maps between two images using an input and output
profile and an intent. The input image must have a format matching the
input profile (eg. 4 bands for a CMYK profile). The output image will
have a form matching the output profile (eg. 3 bands for an RGB output
profile). The input image must be 8 or 16 bit unsigned integer. The
output image is always 8 bit unsigned int. The output profile is
attached to the output image under the name icc-profile-data .
Functions like im_vips2jpeg(3) will then attach the profile to the
files they create.
im_icc_import(3) takes an image to D50 Lab float (profile interconnect
space) from device space. The input image must match the format
expected by the profile: for example, a printer profile will usually
need 4 band CMYK data. The input image must be 8 or 16 bit unsigned
integer.
im_icc_import_embedded(3) takes an image to D50 Lab float (profile
interconnect space) from device space, using the profile embedded in
the image. If there is no embedded profile, an error is returned. Test
for the presence of a profile with im_header_get_type(3).
im_icc_export_depth(3) takes an image from D50 Lab float back to device
space. The output image will match the format of the profile: for
example, a screen profile will write 3 band RGB data. The output image
biut depth can be set to 8 or 16 with the depth parameter. The profile
is attached to the output image under the name icc-profile-data .
Functions like im_vips2jpeg(3) will then attach the profile to the
files they create.
im_icc_export(3) behaves just as im_icc_export_depth(), but with depth
always 8 bit.
im_icc_ac2rc(3) converts an image from D50 absolute to media relative
colorimetry using the media white point found in the ICC profile.
RETURN VALUE
The functions return 0 on success and -1 on error.
SEE ALSO
im_LabQ2Lab(3), im_Lab2XYZ(3).
COPYRIGHT
The National Gallery
April 2002 IM_ICC_*()(3)