Method

VipsImagepremultiply

Declaration [src]

int
vips_premultiply (
  VipsImage* in,
  VipsImage** out,
  ...
)

Description [src]

Optional arguments:

  • max_alpha: %gdouble, maximum value for alpha

Premultiplies any alpha channel. The final band is taken to be the alpha and the bands are transformed as:

  alpha = clip( 0, in[in.bands - 1], @max_alpha );
  norm = alpha / @max_alpha;
  out = [in[0] * norm, ..., in[in.bands - 1] * norm, alpha];

So for an N-band image, the first N - 1 bands are multiplied by the clipped and normalised final band, the final band is clipped. If there is only a single band, the image is passed through unaltered.

The result is

VIPS_FORMAT_FLOAT unless the input format is #VIPS_FORMAT_DOUBLE, in which

case the output is double as well.

max_alpha has the default value 255, or 65535 for images tagged as

VIPS_INTERPRETATION_RGB16 or

VIPS_INTERPRETATION_GREY16.

Non-complex images only.

See also: vips_unpremultiply(), vips_flatten().

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

NULL-terminated list of optional named arguments.

Return value

Returns: int
 

0 on success, -1 on error.