NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #558 most downloaded on npm
High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, GIF, AVIF and TIFF images
Last release 4 days ago
27 Sep 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
7 versions withdrawn
withdrawn after publishing
13 years old
194 releases · first in 2013
title: v0.20.2 - 28th April 2018 slug: changelog/v0.20.2
Add environment variable to ignore globally-installed libvips. #1165 @oncletom
Add support for page selection with multi-page input (GIF/TIFF). #1204 @woolite64
Add support for Group4 (CCITTFAX4) compression with TIFF output. #1208 @woolite64
title: v0.20.1 - 17th March 2018 slug: changelog/v0.20.1
One column per quarter.
title: v0.20.0 - 5th March 2018 slug: changelog/v0.20.0
title: v0.19.1 - 24th February 2018 slug: changelog/v0.19.1
title: v0.19.0 - 11th January 2018 slug: changelog/v0.19.0
Expose offset coordinates of strategy-based crop. #868 @mirohristov-com
PNG output now defaults to adaptiveFiltering=false, compressionLevel=9 #872 @wmertens
Add stats feature for pixel-derived image statistics. #915 @rnanwani
Add failOnError option to fail-fast on bad input image data. #976 @mceachen
Resize: switch to libvips' implementation, make fastShrinkOnLoad optional, remove interpolator and centreSampling options. #977 @jardakotesovec
Attach finish event listener to a clone only for Stream-based input. #995 @whmountains
Add tilecache before smartcrop to avoid over-computation of previous operations. #1028 @coffeebite
Prevent toFile extension taking precedence over requested format. #1037 @tomgallagher
Add support for gravity option to existing embed feature. #1038 @AzureByte
Expose IPTC and XMP metadata when available. #1079 @oaleynik
TIFF output: switch default predictor from 'none' to 'horizontal' to match libvips' behaviour.
title: v0.18.4 - 18th September 2017 slug: changelog/v0.18.4
title: v0.18.3 - 13th September 2017 slug: changelog/v0.18.3
Skip shrink-on-load when trimming. #888 @kleisauke
Migrate from got to simple-get for basic auth support. #945 @pbomb
title: v0.18.2 - 1st July 2017 slug: changelog/v0.18.2
title: v0.18.1 - 30th May 2017 slug: changelog/v0.18.1
Remove the previously-deprecated output format "option" functions: quality, progressive, compressionLevel, withoutAdaptiveFiltering, withoutChromaSubs…
Remove the previously-deprecated output format "option" functions: quality, progressive, compressionLevel, withoutAdaptiveFiltering, withoutChromaSubsampling, trellisQuantisation, trellisQuantization, overshootDeringing, optimiseScans and optimizeScans.
Ensure maximum output dimensions are based on the format to be used. #176 @stephanebachelier
Avoid costly (un)premultiply when using overlayWith without alpha channel. #573 @strarsis
Include pixel depth (e.g. "uchar") when reading metadata. #577 @moedusa
Add support for Buffer and Stream-based TIFF output. #587 @strarsis
Expose warnings from libvips via NODE_DEBUG=sharp environment variable. #607 @puzrin
Switch to the libvips implementation of "attention" and "entropy" crop strategies. #727
Improve performance and accuracy of nearest neighbour integral upsampling. #752 @MrIbby
Constructor single argument API: allow plain object, reject null/undefined. #768 @kub1x
Ensure ARM64 pre-built binaries use correct C++11 ABI version. #772 @ajiratech2
Prevent aliasing by using dynamic values for shrink(-on-load). #781 @kleisauke
Expose libvips' "squash" parameter to enable 1-bit TIFF output. #783 @YvesBos
Add support for rotation using any multiple of +/-90 degrees. #791 @ncoden
Add "jpg" alias to toFormat as shortened form of "jpeg". #814 @jingsam
title: v0.17.3 - 1st April 2017 slug: changelog/v0.17.3
Allow toBuffer to optionally resolve a Promise with both info and data. #143 @salzhrani
Create blank image of given width, height, channels and background. #470 @pjarts
Add support for the "nearest" kernel for image reductions. #732 @alice0meta
Add support for TIFF compression and predictor options. #738 @kristojorg
title: v0.17.2 - 11th February 2017 slug: changelog/v0.17.2
Ensure Readable side of Stream can start flowing after Writable side has finished. #671 @danhaller
Expose WebP alpha quality, lossless and near-lossless output options. #685 @rnanwani
title: v0.17.1 - 15th January 2017 slug: changelog/v0.17.1
Improve error messages for invalid parameters. @spikeon #644
Simplify expression for finding vips-cpp libdir. #656
Allow HTTPS-over-HTTP proxy when downloading pre-compiled dependencies. @wangzhiwei1888 #679
Deprecate the following output format "option" functions: quality, progressive, compressionLevel, withoutAdaptiveFiltering, withoutChromaSubsampling,…
Drop support for versions of Node prior to v4.
Deprecate the following output format "option" functions:
quality, progressive, compressionLevel, withoutAdaptiveFiltering,
withoutChromaSubsampling, trellisQuantisation, trellisQuantization,
overshootDeringing, optimiseScans and optimizeScans.
Access to these is now via output format functions, for example quality(n)
is now jpeg({quality: n}) and/or webp({quality: n}).
Autoconvert GIF and SVG input to PNG output if no other format is specified.
Expose libvips' "centre" resize option to mimic *magick's +0.5px convention. #568
Ensure support for embedded base64 PNG and JPEG images within an SVG. #601 @dynamite-ready
Ensure premultiply operation occurs before box filter shrink. #605 @CmdrShepardsPie @teroparvinen
Add support for PNG and WebP tile-based output formats (in addition to JPEG). #622 @ppaskaris
Allow use of extend with greyscale input. #623 @ppaskaris
Allow non-RGB input to embed/extend onto background with an alpha channel. #646 @DaGaMs
title: v0.16.2 - 22nd October 2016 slug: changelog/v0.16.2
title: v0.16.1 - 13th October 2016 slug: changelog/v0.16.1
C++11 ABI version is now auto-detected, remove sharp-cxx11 installation flag.
Add experimental 'attention' crop strategy. #295
Include .node extension for Meteor's require() implementation. #537 @isjackwild
Ensure convolution kernel scale is clamped to a minimum value of 1. #561 @abagshaw
Correct calculation of y-axis placement when overlaying image at a fixed point. #566 @Nateowami
Remove deprecated interpolateWith method - use resize(w, h, { interpolator: ... }) #310
Add pre-compiled libvips for OS X, ARMv7 and ARMv8. #312
Ensure boolean, bandbool, extractChannel ops occur before sRGB conversion. #504 @mhirsch
Recalculate factors after WebP shrink-on-load to avoid round-to-zero errors. #508 @asilvas
Prevent boolean errors during extract operation. #511 @mhirsch
Add joinChannel and toColourspace/toColorspace operations. #513 @mhirsch
Add support for raw pixel data with boolean and withOverlay operations. #516 @mhirsch
Prevent bandbool creating a single channel sRGB image. #519 @mhirsch
Ensure ICC profiles are removed from PNG output unless withMetadata used. #521 @ChrisPinewood
Add alpha channels, if missing, to overlayWith images. #540 @cmtt
Remove deprecated interpolateWith method - use resize(w, h, { interpolator: ... }) #310
title: v0.15.1 - 12th July 2016 slug: changelog/v0.15.1
Concat Stream-based input in single operation for ~+3% perf and less GC. #429 @papandreou
Add alpha channel, if required, before extend operation. #439 @frulo
Allow overlay image to be repeated across entire image via tile option. #443 @lemnisk8
Add cutout option to overlayWith feature, applies only the alpha channel of the overlay image. #448 @kleisauke
Ensure scaling factors are calculated independently to prevent rounding errors. #452 @puzrin
Add --sharp-cxx11 flag to compile with gcc's new C++11 ABI. #456 @kapouer
Add top/left offset support to overlayWith operation. #473 @rnanwani
Add convolve operation for kernel-based convolution. #479 @mhirsch
Add greyscale option to threshold operation for colourspace conversion control. #480 @mhirsch
Ensure ICC profiles are licenced for distribution. #486 @kapouer
Allow images with an alpha channel to work with LAB-colourspace based sharpen. #490 @jwagner
Add trim operation to remove "boring" edges. #492 @kleisauke
Add bandbool feature for channel-wise boolean operations. #496 @mhirsch
Add extractChannel operation to extract a channel from an image. #497 @mhirsch
Add ability to read and write native libvips .v files. #500 @mhirsch
Add boolean feature for bitwise image operations. #501 @mhirsch
Use libvips' new Lanczos 3 kernel as default for image reduction. Deprecate interpolateWith method, now provided as a resize option. #310 @jcupitt
Use libvips' new Lanczos 3 kernel as default for image reduction. Deprecate interpolateWith method, now provided as a resize option. #310 @jcupitt
Take advantage of libvips v8.3 features. Add support for libvips' new GIF and SVG loaders. Pre-built binaries now include giflib and librsvg, exclude *magick. Use shrink-on-load for WebP input. Break existing sharpen API to accept sigma and improve precision. #369
Remove unnecessary (un)premultiply operations when not resizing/compositing. #413 @jardakotesovec
title: v0.14.1 - 16th April 2016 slug: changelog/v0.14.1
Allow removal of limitation on input pixel count via limitInputPixels. Use with care. #250 #316 @anandthakker @kentongray
Use final output image for metadata passed to callback. #399 @salzhrani
Add support for writing tiled images to a zip container. #402 @felixbuenemann
Improve Electron compatibility by allowing node-gyp rebuilds without npm. #412 @nouh
Remove deprecated style of calling extract API. Breaks calls using positional arguments. #276
Add ability to extend (pad) the edges of an image. #128 @blowsie
Add support for Zoomify and Google tile layouts. Breaks existing tile API. #223 @bdunnette
Improvements to overlayWith: differing sizes/formats, gravity, buffer input. #239 @chrisriley
Add entropy-based crop strategy to remove least interesting edges. #295 @rightaway
Expose density metadata; set density of images from vector input. #338 @lookfirst
Emit post-processing 'info' event for Stream output. #367 @salzhrani
Ensure output image EXIF Orientation values are within 1-8 range. #385 @jtobinisaniceguy
Ensure ratios are not swapped when rotating 90/270 and ignoring aspect. #387 @kleisauke
Remove deprecated style of calling extract API. Breaks calls using positional arguments. #276
title: v0.13.1 - 27th February 2016 slug: changelog/v0.13.1
title: v0.13.0 - 15th February 2016 slug: changelog/v0.13.0
Improve vector image support by allowing control of density/DPI. Switch pre-built libs from Imagemagick to Graphicsmagick. #110 @bradisbell
Add support for raw, uncompressed pixel Buffer/Stream input. #220 @mikemorris
Switch from libvips' C to C++ bindings, requires upgrade to v8.2.2. #299
Control number of open files in libvips' cache; breaks existing cache behaviour.
#315
@impomezia
Ensure 16-bit input images can be normalised and embedded onto transparent backgrounds. #339 #340 @janaz
Ensure selected format takes precedence over any unknown output filename extension. #344 @ubaltaci
Add support for libvips' PBM, PGM, PPM and FITS image format loaders. #347 @oaleynik
Ensure default crop gravity is center/centre. #351 @joelmukuthu
Improve support for musl libc systems e.g. Alpine Linux. #354 #359 @download13 @wjordan
Small optimisation when reducing by an integral factor to favour shrink over affine.
Add support for gamma correction of images with an alpha channel.
title: v0.12.2 - 16th January 2016 slug: changelog/v0.12.2
title: v0.12.1 - 12th December 2015 slug: changelog/v0.12.1
title: v0.12.0 - 23rd November 2015 slug: changelog/v0.12.0
Bundle pre-compiled libvips and its dependencies for 64-bit Linux and Windows. #42
Take advantage of libvips v8.1.0+ features. #152
Add support for 64-bit Windows. Drop support for 32-bit Windows. #224 @sabrehagen
Switch default interpolator to bicubic. #289 @mahnunchik
Pre-extract rotatation should not swap width/height. #296 @asilvas
Ensure 16-bit+alpha input images are (un)premultiplied correctly. #301 @izaakschroeder
Support options Object with existing extract operation.
#309
@papandreou
title: v0.11.4 - 5th November 2015 slug: changelog/v0.11.4
Add corners, e.g. northeast, to existing gravity option.
#291
@brandonaaron
Ensure correct auto-rotation for EXIF Orientation values 2 and 4. #288 @brandonaaron
Make static linking possible via --runtime_link install option.
#287
@vlapo
title: v0.11.3 - 8th September 2015 slug: changelog/v0.11.3
title: v0.11.2 - 28th August 2015 slug: changelog/v0.11.2
title: v0.11.1 - 12th August 2015 slug: changelog/v0.11.1
title: v0.11.0 - 15th July 2015 slug: changelog/v0.11.0
Allow alpha transparency compositing via new overlayWith method.
#97
@gasi
Expose raw ICC profile data as a Buffer when using metadata.
#129
@homerjam
Allow image header updates via a parameter passed to existing withMetadata method.
Provide initial support for EXIF Orientation tag,
which if present is now removed when using rotate, flip or flop.
#189
@h2non
Tighten constructor parameter checks. #221 @mikemorris
Allow one input Stream to be shared with two or more output Streams via new clone method.
#235
@jaubourg
Use round instead of floor when auto-scaling dimensions to avoid floating-point rounding errors.
#238
@richardadjogah
title: v0.10.1 - 1st June 2015 slug: changelog/v0.10.1
title: v0.10.0 - 23rd April 2015 slug: changelog/v0.10.0
Add support for Windows (x86). #19 @DullReferenceException @itsananderson
Add support for Openslide input and DeepZoom output. #146 @mvictoras
Allow arbitrary aspect ratios when resizing images via new ignoreAspectRatio method.
#192
@skedastik
Enhance output image contrast by stretching its luminance to cover the full dynamic range via new normalize method.
#194
@bkw
@codingforce
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →