Skip to content

Releases: lopcode/vips-ffm

v1.9.5

26 Dec 18:42
d2ff099

Choose a tag to compare

Notable Changes

Bindings are now generated with libvips 8.18.0 to support UltraHDR, RAW format, and more - see the libvips release notes.

What's Changed

  • Bump jvm from 2.2.21 to 2.3.0 by @dependabot[bot] in #197
  • Bump com.gradleup.shadow from 9.2.2 to 9.3.0 by @dependabot[bot] in #196
  • Bump org.apache.commons:commons-text from 1.14.0 to 1.15.0 by @dependabot[bot] in #195
  • Bump com.palantir.javapoet:javapoet from 0.8.0 to 0.9.0 by @dependabot[bot] in #194
  • Generate with libvips 8.18, remove usage of thumbnailImage by @lopcode in #198

Full Changelog: v1.9.4...v1.9.5

v1.9.4

17 Nov 11:20
4c9abde

Choose a tag to compare

Notable changes

Adds VImage.newMatrix and VImage.newMatrixFromArray to assist with operations involving masks, like blurring.

What's Changed

Full Changelog: v1.9.3...v1.9.4

v1.9.3

22 Oct 20:40
4cc0782

Choose a tag to compare

Notable changes

Fixes operations with array outputs, such as VImage.getpoint, by correcting byte alignment of reads - thanks @jbaiter!

What's Changed

  • fix: retrieval of ArrayDouble output options (fixes #183) by @jbaiter in #184
  • Fix macOS runner by manually specifying dylib locations by @lopcode in #185

Full Changelog: v1.9.2...v1.9.3

v1.9.2

11 Oct 16:15
5a2f11d

Choose a tag to compare

Notable changes

Adds VImage.remove to allow for removing image metadata.

Pull Requests

Full Changelog: v1.9.1...v1.9.2

v1.9.1

31 Aug 14:55
af82060

Choose a tag to compare

Notable changes

You no longer have to call Vips.init yourself - using anything from Vips, VipsInvoker, or VipsHelper will automatically initialise libvips for you. This aligns vips-ffm with the behaviour of other bindings. You can disable this new default behaviour with a system property. Thanks @jbaiter!

Vips.init(Boolean, Boolean) has been deprecated in favour of Vips.allowUntrustedOperations and Vips.enableLeakDetection.

Pull Requests

  • Automatically initialise libvips by default by @lopcode in #177

Full Changelog: v1.9.0...v1.9.1

v1.9.0

19 Aug 19:54
b74fdf1

Choose a tag to compare

Notable changes

The signature of VCustomSource#SeekCallback has been corrected, to include both offset and whence from the upstream libvips API - thanks @jbaiter!

What's Changed

New Contributors

Full Changelog: v1.8.0...v1.9.0

v1.8.0

19 Jul 18:24
0d498ab

Choose a tag to compare

Notable changes

  • VImage.newFromMemory and VImage.writeToMemory now both use the FFM MemorySegment API to avoid unnecessary copies to/from a ByteBuffer, and allow operating on multi-gigabyte images
    • Note that you can still use MemorySegment.ofBuffer to continue to use a ByteBuffer as input, or MemorySegment.ofArray to input a Java byte[] array
    • See the Java MemorySegment API for more helper methods to various common Java types
  • The README now includes an Operationalisation section describing how to optimise memory usage, enable and disable fuzzed libvips methods, and optionally use jemalloc

New Contributors 🎉

Commits

Full Changelog: v1.7.1...v1.8.0

v1.7.1

28 Jun 16:25
74e6f9d

Choose a tag to compare

What's Changed

Full Changelog: v1.7.0...v1.7.1

v1.7.0

13 Jun 23:18
df781b7

Choose a tag to compare

Notable changes

  • Adds support for libvips header operations, including access to things like ICC Profiles, EXIF data, and embedded preview images (see image for sample, libvips docs)
  • Removes long-deprecated getUnsafeAddress and asByteBuffer methods (use getUnsafeStructAddress and asArenaScopedByteBuffer instead)
  • Removes accidentally included "deprecated" libvips operations (specifically removes avifsaveTarget, cache, magicksaveBmp, pbmsaveTarget, pfmsaveTarget, pgmsaveTarget, pnmsaveTarget internal operations)
    • Note that there is no lost functionality here - these methods are internal libvips helper methods for other operations - see discussion
Screenshot 2025-06-14 at 00 09 41

Commits

  • Bump the jackson group with 2 updates by @dependabot in #147
  • Bump org.gradle.toolchains.foojay-resolver-convention from 0.10.0 to 1.0.0 by @dependabot in #151
  • Remove deprecated manual methods, and hide deprecated operations by @lopcode in #155
  • Image metadata getting and setting by @lopcode in #156

Full Changelog: v1.6.0...v1.7.0

v1.6.0

05 Jun 21:21
73f5111

Choose a tag to compare

Notable changes

  • Builds with libvips 8.17.0, including Markdown comments - this includes numerous fixes to how documentation is displayed, including nicely formatted tables (see image)
  • Builds with Java 23 (required for Markdown comments), whilst setting Java 22 compatibility for the compilation
    • Java 22 compatibility is best-effort, and the documentation has been updated to recommend JDK 23+
Screenshot 2025-06-05 at 21 57 57

Commits

  • Bump jvm from 2.1.10 to 2.1.20 by @dependabot in #143
  • Bump org.apache.commons:commons-text from 1.13.0 to 1.13.1 by @dependabot in #145
  • Bump org.gradle.toolchains.foojay-resolver-convention from 0.9.0 to 0.10.0 by @dependabot in #144
  • Restructure README to make it easier for beginners by @lopcode in #146
  • Markdown comments and libvips 8.17.0 by @lopcode in #150
  • Fix a few rogue old-style comments by @lopcode in #152

Full Changelog: v1.5.2...v1.6.0