Requires libvips v8.6.1.
-
Prevent possible rounding error when using shrink-on-load and 90/270 degree rotation. #1241 @anahit42
-
Ensure extractChannel sets correct single-channel colour space interpretation. #1257 @jeremychone
-
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
-
Improve installation experience when a globally-installed libvips below the minimum required version is found. #1148
-
Prevent smartcrop error when cumulative rounding is below target size. #1154 @ralrom
- Add support for prebuilt sharp binaries on common platforms. #186
Requires libvips v8.6.1.
-
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.
Requires libvips v8.5.5.
- Ensure input Buffer really is marked as Persistent, prevents mark-sweep GC. #950 @lfdoherty
-
Skip shrink-on-load when trimming. #888 @kleisauke
-
Migrate from got to simple-get for basic auth support. #945 @pbomb
-
Expose libvips' xres and yres properties for TIFF output. #828 @YvesBos
-
Ensure flip and flop operations work with auto-rotate. #837 @rexxars
-
Allow binary download URL override via SHARP_DIST_BASE_URL env variable. #841
-
Add support for Solus Linux. #857 @ekremkaraca
-
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
Requires libvips v8.4.2.
-
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
-
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
-
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
-
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 nowjpeg({quality: n})
and/orwebp({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
Requires libvips v8.3.3
-
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
-
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
Requires libvips v8.3.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
-
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
Requires libvips v8.2.3
-
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
-
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
Requires libvips v8.2.2
- Fix embedding onto transparent backgrounds; regression introduced in v0.13.0. #366 @diegocsandrim
-
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.
Requires libvips v8.2.0
-
Upgrade libvips to v8.2.0 for improved vips_shrink.
-
Add pre-compiled libvips for ARMv6+ CPUs.
-
Ensure 16-bit input images work with embed option. #325 @janaz
-
Allow compilation with gmake to provide FreeBSD support. #326 @c0decafe
-
Attempt to remove temporary file after installation. #331 @dtoubelis
-
Allow use of SIMD vector instructions (via liborc) to be toggled on/off. #172 @bkw @puzrin
-
Ensure embedded ICC profiles output with perceptual intent. #321 @vlapo
-
Use the NPM-configured HTTPS proxy, if any, for binary downloads.
-
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 existingextract
operation. #309 @papandreou
-
Add corners, e.g.
northeast
, to existinggravity
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
- Intrepret blurSigma, sharpenFlat, and sharpenJagged as double precision. #263 @chrisriley
- Allow crop gravity to be provided as a String. #255 @papandreou
- Add support for io.js v3 and Node v4. #246
-
Silence MSVC warning: "C4530: C++ exception handler used, but unwind semantics are not enabled". #244 @TheThing
-
Suppress gamma correction for input image with alpha transparency. #249 @compeak
-
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 EXIFOrientation
tag, which if present is now removed when usingrotate
,flip
orflop
. #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 offloor
when auto-scaling dimensions to avoid floating-point rounding errors. #238 @richardadjogah
-
Allow embed of image with alpha transparency onto non-transparent background. #204 @mikemliu
-
Include C standard library for
atoi
as Xcode 6.3 appears to no longer do this. #228 @doggan
-
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