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