Method

VipsImagepngsave

Declaration [src]

int
vips_pngsave (
  VipsImage* in,
  const char* filename,
  ...
)

Description [src]

Optional arguments:

  • compression: %gint, compression level
  • interlace: %gboolean, interlace image
  • profile: %gchararray, ICC profile to embed
  • filter: VipsForeignPngFilter row filter flag(s)
  • palette: %gboolean, enable quantisation to 8bpp palette
  • Q: %gint, quality for 8bpp quantisation
  • dither: %gdouble, amount of dithering for 8bpp quantization
  • bitdepth: %gint, set write bit depth to 1, 2, 4, 8 or 16
  • effort: %gint, quantisation CPU effort

Write a VIPS image to a file as PNG.

compression means compress with this much effort (0 - 9). Default 6.

Set interlace to TRUE to interlace the image with ADAM7 interlacing. Beware than an interlaced PNG can be up to 7 times slower to write than a non-interlaced image.

Use profile to give the filename of a profile to be embedded in the PNG. This does not affect the pixels which are written, just the way they are tagged. See vips_profile_load() for details on profile naming.

If profile is specified and the VIPS header contains an ICC profile named VIPS_META_ICC_NAME (“icc-profile-data”), the profile from the VIPS header will be attached.

Use filter to specify one or more filters, defaults to none, see VipsForeignPngFilter.

The image is automatically converted to RGB, RGBA, Monochrome or Mono + alpha before saving. Images with more than one byte per band element are saved as 16-bit PNG, others are saved as 8-bit PNG.

Set palette to TRUE to enable palette mode for RGB or RGBA images. A palette will be computed with enough space for bitdepth (1, 2, 4 or 8) bits. Use Q to set the optimisation effort, dither to set the degree of Floyd-Steinberg dithering and effort to control the CPU effort (1 is the fastest, 10 is the slowest, 7 is the default). This feature requires libvips to be compiled with libimagequant.

The default bitdepth is either 8 or 16 depending on the interpretation. You can also set bitdepth for mono and mono + alpha images, and the image will be quantized.

XMP metadata is written to the XMP chunk. PNG comments are written to separate text chunks.

See also: vips_image_new_from_file().

This method is not directly available to language bindings.

Parameters

filename const char*
 

File to write to.

 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.