| .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 |
| |