Skip to content

Releases: libvips/libvips

v8.18.7

Choose a tag to compare

@jcupitt jcupitt released this 26 Sep 11:31
24ad4d0

Changes since 8.18.6:

  • tiffload: copy colormaps on page load [Ada Logics]
  • buildlut: limit output lut size [Ada Logics]
  • tiffload: check for undersized jp2k tiles [Ada Logics]
  • hough_line: improve bounds check [Ada Logics]
  • pdfiumload: check for buffer too small [Ada Logics]
  • tiffload: check rgba settings between directories [Tanto Security]
  • uhdrload: calculate gain map scale factor using round-to-nearest [lovell]
  • jp2ksave: tag as UNTRUSTED [kleisauke]
  • header: only parse EXIF metadata for blob values [Shopify]
  • jp2kload: more size validation [Akokonunes]

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.7

v8.18.6

Choose a tag to compare

@jcupitt jcupitt released this 25 Aug 15:34
426af3f

Changes since 8.18.5:

  • openexrload: more validation [Hygge Halcyon]
  • heifload: tag as UNTRUSTED for libheif before 1.23.2

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.6

v8.18.5

Choose a tag to compare

@jcupitt jcupitt released this 03 Aug 13:35

Changes since 8.18.4:

  • maplut: fix possible OOB read with complex images [sage-mode-hunter]
  • measure: verify image region is larger than patch count [lovell]
  • matload: more specific Matlab detection
  • reduceh: fix potential incorrect output with Highway < 1.1.0 [dloebl]
  • jxlsave: ensure EXIF data is freed on error [kleisauke]
  • icc_ac2rc: ensure ICC profile is closed on error [kleisauke]
  • buildlut: guard against NaN values [kleisauke]
  • tiffsave: better xyz handling [har-pi]
  • more use of vips_image_decode() [har-pi]
  • quantise: better conversion to rgba [har-pi]
  • jp2kload: support palette images [Socialpranker]
  • buildlut: better final write calculation [har-pi]

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.5

v8.18.4

Choose a tag to compare

@jcupitt jcupitt released this 05 Jul 10:57

Changes since 8.18.3:

  • heifload: raise security limits on references [caseywebdev]
  • tiffload: squash out read errors in openin_source_read [aleens-labs]
  • jxlsave: convert CMYK images to sRGB [DarthSim]
  • heifload: fix -Winteger-overflow warning on 32-bit platforms [kleisauke]
  • object: guard against non-input arguments [kleisauke]
  • enumtypes: avoid misuse of G_GNUC_CONST for GCC 17 compat [kleisauke]

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.4

v8.18.3

Choose a tag to compare

@jcupitt jcupitt released this 09 Jun 11:35
3664cfc

Changes since 8.18.2:

  • invertlut: verify input mask positions [lovell]
  • bandjoin_const: fix possible OOB read with RAD/LABQ images [kleisauke]
  • edge: ensure parent object is built [lovell]
  • object: guard against invalid interpolators [kleisauke]
  • foreign: guard against NULL filenames [kleisauke]
  • stdif: expand input by one column [lovell]
  • dcrawload: add support for non-square pixels [jcupitt]
  • image_sanity: ensure scanlines fit in INT_MAX [Niels Provos]
  • rank: expand input by one column [kleisauke]
  • hist_local: expand input by one column [kleisauke]
  • fix possible null-pointer dereference in quantizr backend [felixbuenemann]
  • jp2ksave: fix OOB read during chroma subsampling [dloebl]
  • jp2ksave: prevent heap buffer overflow on non-RGB images [dloebl]
  • heifload: tighten limits on memory use [provos]
  • boolean: fix heap-buffer-overflow in lshift [dloebl]
  • magickload: check animation height [Himanshu Anand]
  • source: fix max/min confusion [Himanshu Anand]
  • uhdrsave: use macro to size buffer [Himanshu Anand]
  • draw_mask: fix support for packed LABQ images [lovell]
  • reduceh: fix possible OOB read in Highway path [kleisauke]
  • buildlut: check upper bound of x range [lovell]
  • jxl: ensure status codes are propagated [lovell]
  • archive: fix compatibility with MSVC [eunos-1128]
  • ppmload: check image dimensions [lovell]
  • thumbnail: better pyr detection [Niels Provos]
  • jpegsave: fix scrgb save with uhdr disabled [jcupitt]

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.3

v8.18.3-rc1

v8.18.3-rc1 Pre-release
Pre-release

Choose a tag to compare

@jcupitt jcupitt released this 06 Jun 13:33

Changes since 8.18.2:

  • invertlut: verify input mask positions [lovell]
  • bandjoin_const: fix possible OOB read with RAD/LABQ images [kleisauke]
  • edge: ensure parent object is built [lovell]
  • object: guard against invalid interpolators [kleisauke]
  • foreign: guard against NULL filenames [kleisauke]
  • stdif: expand input by one column [lovell]
  • dcrawload: add support for non-square pixels [jcupitt]
  • image_sanity: ensure scanlines fit in INT_MAX [Niels Provos]
  • rank: expand input by one column [kleisauke]
  • hist_local: expand input by one column [kleisauke]
  • fix possible null-pointer dereference in quantizr backend [felixbuenemann]
  • jp2ksave: fix OOB read during chroma subsampling [dloebl]
  • jp2ksave: prevent heap buffer overflow on non-RGB images [dloebl]
  • heifload: tighten limits on memory use [provos]
  • boolean: fix heap-buffer-overflow in lshift [dloebl]
  • magickload: check animation height [Himanshu Anand]
  • radload: deprecate old-style scanline read [Himanshu Anand]
  • source: fix max/min confusion [Himanshu Anand]
  • uhdrsave: use macro to size buffer [Himanshu Anand]
  • draw_mask: fix support for packed LABQ images [lovell]
  • reduceh: fix possible OOB read in Highway path [kleisauke]
  • buildlut: check upper bound of x range [lovell]
  • jxl: ensure status codes are propagated [lovell]
  • archive: fix compatibility with MSVC [eunos-1128]
  • ppmload: check image dimensions [lovell]
  • thumbnail: better pyr detection [Niels Provos]

v8.18.2

Choose a tag to compare

@jcupitt jcupitt released this 31 Mar 21:36
17ad2f6

Changes since 8.18.1:

  • convolution: avoid using unsigned accumulators [nakrovati]
  • exif: check ifdN range [trailofbits]
  • tiffload: check jpeg and jp2k components [wooseokdotkim]
  • uhdrsave: set Q for gainmap recompress, don't chroma subsample RGB gainmaps
  • uhdrsave: prevent early unref of image with alpha channel [lovell]
  • rad2float: limit band count when converting from radiance [lovell]
  • jxlload: check EXIF buffer size before reading header [lovell]

Homebrew has updated, win binaries are here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.2

v8.18.1

Choose a tag to compare

@jcupitt jcupitt released this 18 Mar 10:45
d00e58e

This release fixes a few reported bugs, plus a lot of bugs found by recent improvements to fuzzing (thanks @dloebl!).

  • vector: mask supported Highway targets by builtin targets [kleisauke]
  • fix Highway paths on big-endian targets [kleisauke]
  • fix build with MSVC [star-hengxing]
  • fix compatibility with glibc 2.43 [mtasaka]
  • pngload: avoid an expensive check during header read [kleisauke]
  • improve vips7 JPEG load compatibility [kleisauke]
  • fix saving 3-band MATRIX images [kleisauke]
  • uhdrload: expose original gainmap scale factor [lovell]
  • uhdrsave: control generated gainmap scale factor [lovell]
  • source: guard against length truncation [Niebelungen-D]
  • shrinkh: fix possible OOB read in Highway path [dloebl] [kleisauke]
  • string_to_array_double: ensure delimiter list is consistent [dloebl] [lovell]
  • fix loading/saving of non-8-bit JXL images [DarthSim]
  • invertlut: check height before interpolating values [dloebl] [lovell]
  • extract: check bounds using unsigned arithmetic [Niebelungen-D] [lovell]
  • matrixload: guard against empty and very large inputs [Niebelungen-D] [lovell]
  • unpremultiply: check alpha_band is in range [Niebelungen-D] [lovell]
  • maplut: ensure lookup table index is unsigned [dloebl] [lovell]
  • fwfft: fix heap-buffer-overflow for single-row images [dloebl]
  • draw_flood: reject out-of-bounds start point [dloebl]
  • openexrload: fix a leak with invalid images [kleisauke]
  • canny: fix UB in atan2 lookup table init [dloebl] [kleisauke]
  • conva: guard against divide by zero [kleisauke]
  • csvload: check whitespace and separator are ASCII [Niebelungen-D] [lovell]
  • bandrank: check index is in range [Niebelungen-D] [lovell]
  • remainder_const: guard against divide by zero [kleisauke]
  • vips_window_take: prevent int underflow for small mapped images [jcupitt]
  • composite: fix UB (invalid-enum-value) in ->build() [kleisauke]
  • add: prevent possible int overflow [kleisauke]
  • bandmean: prevent possible int overflow [kleisauke]
  • fastcor: prevent possible int overflow [kleisauke]
  • multiply: prevent possible int overflow [kleisauke]
  • subtract: prevent possible int overflow [kleisauke]
  • hist_cum: prevent possible int overflow [kleisauke]
  • convasep: prevent possible int overflow [kleisauke]
  • conva: prevent possible int overflow [kleisauke]
  • convi: prevent possible int overflow [kleisauke]
  • draw_circle: prevent possible int overflow [kleisauke]
  • csvload: guard against negative index access [kleisauke]
  • convi: guard against invalid shift [kleisauke]
  • nary: guard against empty input [kleisauke]
  • maplut: add missing overflow checks [kleisauke]
  • jpegsave: fix assert fail when saving 2-band image [kleisauke]
  • LabS2LabQ: fix UB (undefined-shift) [kleisauke]
  • convasep: use unsigned accumulator where appropriate [kleisauke]
  • min: fix possible OOB read with complex images [kleisauke]
  • max: fix possible OOB read with complex images [kleisauke]
  • guard against dimension overflow [ElhananHaenel] [kleisauke]
  • gifload: prevent int overflow on 32-bit platforms [ElhananHaenel] [kleisauke]
  • sign: use ready image instead of unary->in [kleisauke]
  • statistic: use ready image instead of statistic->in [kleisauke]
  • hist_plot: handle near-zero ranges for float images [kleisauke]
  • affine: check bounds using unsigned arithmetic [kleisauke]

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.1

v8.18.0

Choose a tag to compare

@jcupitt jcupitt released this 17 Dec 12:33
36fe746

The libvips 8.18 release notes are here:

https://www.libvips.org/2025/12/04/What's-new-in-8.18.html

Notable changes since 8.17:

  • add dcrawload, dcrawload_source, dcrawload_buffer: load raw camera files using libraw [lxsameer]
  • add magickload_source: load from a source with imagemagick
  • add vips__worker_exit(): enables fast threadpool shutdown
  • larger mmap windows on 64-bit machines improve random access mode performance for many file formats
  • pdfload: control region to be rendered via page_box [lovell]
  • system: add "cache" argument
  • add vips_image_get_tile_width(), vips_image_get_tile_height(): get tile cache geometry hints [jbaiter]
  • add vips_uhdrload(), vips_uhdrload_buffer(), vips_uhdrload_source(): load an UltraHDR image
  • add vips_uhdrsave(), vips_uhdrsave_buffer(), vips_uhdrsave_target(): save an UltraHDR image
  • fix cpp binding leak [VivitionDeveloper]
  • add "gainmap" to VipsKeep
  • add vips_image_get_gainmap()
  • thumbnail updates gainmaps
  • add "bitdepth" to jxlsave
  • add "path" option to vipsthumbnail, deprecate "output" option [zjturner]
  • add "exact" to webpsave
  • add "uhdr2scRGB"
  • dzsave has gainmap support
  • cpp: add .gainmap(), .set(VImage)
  • add support for Oklab and Oklch colourspaces
  • add vips_Oklab2XYZ(), vips_XYZ2Oklab()
  • add vips_Oklab2Oklch(), vips_OKlch2Oklab()
  • add vips_interpretation_bands()
  • heifsave: add "tune" parameter
  • require C++14 as a minimum standard [kleisauke]
  • prefer libpng over spng

Windows binaries here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.0

v8.18.0-rc3

v8.18.0-rc3 Pre-release
Pre-release

Choose a tag to compare

@jcupitt jcupitt released this 10 Dec 14:53

Third release candidate for 8.18. The release notes are here:

https://www.libvips.org/2025/12/04/What's-new-in-8.18.html

Notable changes since 8.17:

  • add dcrawload, dcrawload_source, dcrawload_buffer: load raw camera files
    using libraw [lxsameer]
  • add magickload_source: load from a source with imagemagick
  • add vips__worker_exit(): enables fast threadpool shutdown
  • larger mmap windows on 64-bit machines improve random access mode for many
    file formats
  • pdfload: control region to be rendered via page_box [lovell]
  • system: add "cache" argument
  • add vips_image_get_tile_width(), vips_image_get_tile_height(): get tile
    cache geometry hints [jbaiter]
  • add vips_uhdrload(), vips_uhdrload_buffer(), vips_uhdrload_source(): load an
    UltraHDR image
  • add vips_uhdrsave(), vips_uhdrsave_buffer(), vips_uhdrsave_target(): save an
    UltraHDR image
  • fix cpp binding leak [VivitionDeveloper]
  • add "gainmap" to VipsKeep
  • add vips_image_get_gainmap()
  • thumbnail updates gainmaps
  • add "bitdepth" to jxlsave
  • add "path" option to vipsthumbnail, deprecate "output" option [zjturner]
  • add "exact" to webpsave
  • add "uhdr2scRGB"
  • dzsave has gainmap support
  • cpp: add .gainmap(), .set(VImage)
  • add support for Oklab and Oklch colourspaces
  • add vips_Oklab2XYZ(), vips_XYZ2Oklab()
  • add vips_Oklab2Oklch(), vips_OKlch2Oklab()
  • add vips_interpretation_bands()
  • heifsave: add "tune" parameter
  • require C++14 as a minimum standard [kleisauke]
  • prefer libpng over spng

Test windows binaries (for rc2) here:

https://github.com/libvips/build-win64-mxe/releases/tag/v8.18.0-rc2

Sponsor
SponsoredKunjungi sekarang
Promo