Method
VipsImageicc_transform
Declaration [src]
int
vips_icc_transform (
VipsImage* in,
VipsImage** out,
const char* output_profile,
...
)
Description [src]
Transform an image with a pair of ICC profiles.
The input image is moved to profile-connection space with the input profile and then to the output space with the output profile.
The input profile is searched for in three places:
-
If
embeddedis set, libvips will try to use any profile in the input image metadata. You can test for the presence of an embedded profile withvips_image_get_typeof()withVIPS_META_ICC_NAMEas an argument. This will returnGType0 if there is no profile. -
Otherwise, if
input_profileis set, libvips will try to load a profile from the named file. This can also be the name of one of the built-in profiles. -
Otherwise, libvips will try to pick a compatible profile from the set of built-in profiles.
If black_point_compensation is set, LCMS black point compensation is enabled.
depth defaults to 8, or 16 if in is a 16-bit image.
The output image has the output profile attached to the VIPS_META_ICC_NAME field.
Use vips_icc_import() and vips_icc_export() to do either
the first or second half of this operation in isolation.
::: tip “Optional arguments”
* pcs: VipsPCS, use XYZ or LAB PCS
* intent: VipsIntent, transform with this intent
* black_point_compensation: gboolean, enable black point compensation
* embedded: gboolean, use profile embedded in input image
* input_profile: gchararray, get the input profile from here
* depth: gint, depth of output image in bits.
Parameters
out |
VipsImage |
Output image. |
|
| The argument will be set by the function. | |
| The instance takes ownership of the data, and is responsible for freeing it. | |
output_profile |
const char* |
Get the output profile from here. |
|
| The data is owned by the caller of the function. | |
| The string is a NUL terminated UTF-8 string. | |
... |
none |
|