Method

VipsImageicc_transform

Declaration [src]

int
vips_icc_transform (
  VipsImage* in,
  VipsImage** out,
  const char* output_profile,
  ...
)

Description [src]

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

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.

If embedded is set, the input profile is taken from the input image metadata, if present. If there is no embedded profile, input_profile is used as a fall-back. You can test for the presence of an embedded profile with vips_image_get_typeof() with #VIPS_META_ICC_NAME as an argument. This will return %GType 0 if there is no profile.

If embedded is not set, the input profile is taken from input_profile. If input_profile is not supplied, the metadata profile, if any, is used as a fall-back.

If black_point_compensation is set, LCMS black point compensation is enabled.

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.

This method is not directly available to language bindings.

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 value is a NUL terminated UTF-8 string.
...
 

NULL-terminated list of optional named arguments.

Return value

Returns: int
 

0 on success, -1 on error.