blob: c473febea5bfe88d0db0c3c2cebdb97faa233d1b [file] [log] [blame]
.TH IM_ICC_*() 3 "April 2002"
.SH 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
.SH SYNOPSIS
#include <vips/vips.h>
#define VIPS_INTENT_PERCEPTUAL (0)
.br
#define VIPS_INTENT_RELATIVE_COLORIMETRIC (1)
.br
#define VIPS_INTENT_SATURATION (2)
.br
#define VIPS_INTENT_ABSOLUTE_COLORIMETRIC (3)
int
.br
im_icc_present( void )
.br
int
.br
im_icc_transform( IMAGE *in, IMAGE *out,
.br
const char *input_profile_filename,
.br
const char *output_profile_filename,
.br
int intent )
int
.br
im_icc_import( IMAGE *in, IMAGE *out,
.br
const char *input_profile_filename, int intent )
int
.br
im_icc_import_embedded( IMAGE *in, IMAGE *out,
.br
int intent )
int
.br
im_icc_export_depth( IMAGE *in, IMAGE *out, int depth,
.br
const char *output_profile_filename, int intent )
int
.br
im_icc_export( IMAGE *in, IMAGE *out,
.br
const char *output_profile_filename, int intent )
int
.br
im_icc_ac2rc( IMAGE *in, IMAGE *out,
.br
const char *profile_filename )
.SH DESCRIPTION
.B 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.
.B 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
.B "icc-profile-data".
Functions like
.B im_vips2jpeg(3)
will then attach the profile to the files they create.
.B 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.
.B 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
.B im_header_get_type(3).
.B 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
.B "icc-profile-data".
Functions like
.B im_vips2jpeg(3)
will then attach the profile to the files they create.
.B im_icc_export(3)
behaves just as
.B im_icc_export_depth(),
but with depth always 8 bit.
.B im_icc_ac2rc(3)
converts an image from D50 absolute to media relative colorimetry using the
media white point found in the ICC profile.
.SH RETURN VALUE
The functions return 0 on success and -1 on error.
.SH SEE ALSO
im_LabQ2Lab(3), im_Lab2XYZ(3).
.SH COPYRIGHT
The National Gallery