VIPS 8.16.0

VIPS is a small, quick and memory-conservative 2D image processing C and C++ library. It comes with over 300 functions, for arithmetic processing, histograms, convolutions, morphological operations, frequency filtering, colouring, resampling, statistics and others. It supports most common raster image formats (PNG, TIFF, JPEG, FITS, OpenEXR), or chain to ImageMagick/GraphicsMagick.

Tags c c++ images image-processing arithmetic histogram morphing filtering library
License GNU LGPL
State alpha

Recent Releases

8.16.027 Nov 2024 00:05 major feature: Allow small offsets for the PDF magic string project0 . Add support for OJPEG tiffs DarthSim . Add "palette" metadata item to flag palette images DarthSim . Jxl load and save now support exif, xmp, animation DarthSim . Improved configure output. Add a filetype blocker for imagemagick. Add basic g_auto support. Support for long EXIF values MarcosAndre . Better system error messages on windows kleisauke . Add configurable max coordinate and vips_max_coord_get(). Improve kill handling. PFM save and load now uses scRGB (ie. linear 0-1) NiHoel . Turn vips_addalpha() into a VipsOperation RiskoZoSlovenska . Add vips_rawsave_target(), vips_rawsave_buffer() akash-akya . Vipsheader supports multiple "-f field" arguments sergeevabc . Add "target_size" to webpsave john-parton . Add "passes" to webpsave john-parton . Revise sRGB - B_W coefficients daniellovera . Add vips_sdf(), vips_clamp(), vips_maxpair(), vips_minpair(). More const for the C++ API Julianiolo . Deprecate "cache" (use tilecache instead). Add tests for tokenisation. Add "unpack_complex" option to vips_getpoint(). Add deflate compression level setting to tiffsave ruven . Add "smart_deblock" to webpsave goodusername123 .
8.15.526 Nov 2024 10:25 minor bugfix: Version bump, revise C++ soname.
8.15.426 Nov 2024 05:05 minor bugfix: an off-by-one error in vips__token_get(). Heifsave: crash when passing an invalid bitdepth kleisauke . Webpsave: memory leak on error dloebl . Heifsave: ensure NCLX profile is freed in lossless mode kleisauke . Threadpool: a race condition in error handling kleisauke . Disable GLib cast checks and asserts for plain builds kleisauke . Jpeg in tiff for high Q nahilsobh . Threadset: a race condition during thread exit kleisauke . Compatibility with MSVC Julianiolo .
8.15.327 Mar 2024 08:45 minor bugfix: Dzsave of 8-bit images to JPEG.
8.15.214 Mar 2024 03:16 minor bugfix: Deflate compression of tiff pyramids manthey . Thumbnail always writes 8-bit thumbnails turtletowerz . Lower min scale factor to 0.0 in svgload and pdfload lovell . Heifload: don't warn on images with nclx profiles kleisauke . Ppmload: ensure multi-line comments are skipped lovell . Arrayjoin with some pipelines TheEssem . High Q mono JPEG TIFF write with mozjpeg cavenel . Tiffsave: ensure large file support ( 2GB) on MSVC kleisauke . Check linker for target_clones support lovell .
8.15.110 Jan 2024 21:04 minor bugfix: - reduceh: fix Highway path on SSE2 DarthSim - fix JPEG in TIFF colourspace for Q = 90 heman1-test - fix build with upcoming libjxl 0.9 kleisauke - jxlsave: lower min effort value to 1 DarthSim - fix build without libjpeg ionenwks - fix vips7 plugin load jcupitt - allow ".jfif" as a suffix for jpegsave casperbrike - don't let the magick sniffer hijack TIFF kleisauke - ignore BLOCKED classes in foreign map jcupitt - add locks to fftw3 calls akash-akya
8.1216 Jun 2021 10:25 minor bugfix: All tools support `--version`.
8.1116 Aug 2020 07:05 minor feature: Add vips_jpegload_source() and vips_svgload_source() to public C API.
8.10.110 Aug 2020 13:45 minor bugfix: Markdown - xml conversion in doc generation.
8.10.025 Jan 2020 16:05 major feature: More conformat IIIF output from dzsave regisrob . Add @id to dzsave to set IIIF id property regisrob . Add max and min to region shrink rgluskin .
8.9.110 Jan 2020 18:45 minor feature: Don't use the new source loaders for new_from_file or new_from_buffer, it. Will break the loader priority system
8.9.018 Dec 2019 09:45 major feature: Add vips_image_get/set_array_int(). Disable webp alpha output if all frame fill the canvas and are solid. Support arrays of delays for animated images deftomat . Add "unlimited" flag to svgload. Disable webp alpha output if all frames fill the canvas and are solid. Add "compression" option to heifsave lovell . Support webp and zstd compression in tiff. Loaders use "minimise" to input files earlier. Integrate support for oss-fuzz omira-sch . Add vips_switch() / vips_case()... fast many-way ifthenelse. Better const handling for arithmetic operators comparisons against out of range values. Sharpen restores input colourspace. Handle alpha in heifload / heifsave meyermarcel . Add @interpretation and @format to rawload. Nifti load/save uses double for all floating point metadata. Add vips_error_buffer_copy(). Add VipsStream: a universal IO class for loaders and savers. Jpeg, png, tiff (though not tiffsave), rad, svg, ppm and webp use the. New IO class Rewritten ppm load/save is faster and uses less memory. Add @no_strip option to dzsave kalozka1 . Add iiif layout to dzsave. Use of resolution-unit metadata on tiff save kayarre . Support TIFF CIELAB images with alpha angelmixu . Support TIFF with premultiplied alpha in any band. Block metadata changes on shared images pvdz .
8.8.025 Sep 2018 13:05 major bugfix: Update function list in docs janko-m .
8.7.121 Sep 2018 15:25 minor documentation: Update function list in docs janko-m .
8.7.025 Dec 2017 06:25 major feature: Add magicksave, save image with libMagick dlemstra .
8.6.112 Dec 2017 02:45 minor feature: Stop window new/free cycling.. faster zoom out on large images in nip2.
8.6.018 Apr 2017 03:17 major documentation: Supports fits images with leading non-image HDUs, thanks benepo.
8.5.314 Apr 2017 12:45 minor bugfix: More link ing in docs. Revise cache sizing again to help out of order errors under heavy load, thanks. Kleisauke
8.5.231 Mar 2017 09:45 minor documentation: Better behaviour for truncated PNG files, thanks Yury.
8.5.126 Mar 2017 03:17 minor documentation: Init more classes earlier, thanks David.
8.5.014 Oct 2016 10:45 major documentation: Small doc improvements.
8.4.228 Sep 2016 12:05 minor documentation: Small doc improvements.
8.403 May 2016 13:25 minor documentation: Many more wepsave options Felix Bรผnemann .
8.3.118 Apr 2016 00:25 minor documentation: Rename vips wrapper script, it was still vips-8.2, thanks Benjamin.
8.308 Feb 2016 16:45 minor feature: Add vips_reduce*()... a fast path for bicubic downsize. Vips_resize() and vips_similarity use it when they can. Bicubic is better on 32-bit int images.
8.2.328 Jan 2016 18:25 minor bugfix: a crash with SPARC byte-order labq vips images.
8.2.213 Jan 2016 13:05 minor feature: Changes to ease compiling C++ binding with MSVC.
8.2.102 Jan 2016 11:05 minor feature: Add a compat stub, thanks Benjamin.
8.2.008 Oct 2015 10:25 major feature: Added im_bufmagick2vips(), a vips7 wrapper for magick load from buffer.
8.1.011 May 2015 06:25 minor feature: add vips_premultiply(), vips_unpremultiply(). change the alpha range rules for vips_flatten() to match vips_premultiply(). vipsthumbnail uses vips_resize() rather than its own code. vipsthumbnail uses vips_premultiply() for better alpha quality.
8.0.206 May 2015 04:05 minor feature: fix a refcount error in C++ wrapper, thanks huskier. reomve a couple of stray header decls, thanks benjamin.
8.0.126 Apr 2015 23:45 minor bugfix: Fix some compiler warnings.
8.012 Feb 2015 13:45 minor feature: remove old doc stuff add fliphor, flipver, rot90, rot180, rot270 convenience methods to Python add shift option to cast better alpha handling for 16 8 bit colour conversions
7.42.308 Feb 2015 17:25 minor feature: bump version for back-compat ABI change. added vips_image_memory, an alias for vips_image_new_memory. improvements to configure for python. remove --disable-cxx configure flag.
7.42.203 Jan 2015 03:16 minor feature: allow c++ set enum from string display param default and range in usage
7.42.022 Nov 2014 08:05 minor feature: Better default resolution for PNG loading. Better PBM (one bit) load, better PFM (float) import/export. Fixed bug with vips_gaussblur() parameters.