Skip to content

Releases: lopcode/vips-ffm

v1.8.0

19 Jul 18:24
0d498ab
Compare
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
Compare
Choose a tag to compare

What's Changed

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

v1.7.0

13 Jun 23:18
df781b7
Compare
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
Compare
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

v1.5.2

16 Mar 16:49
28abe18
Compare
Choose a tag to compare

No API changes - improved error messages for library load failures when a path is explicitly set

What's Changed

Full Changelog: v1.5.1...v1.5.2

v1.5.1

15 Mar 21:46
af9ce66
Compare
Choose a tag to compare

No public facing API changes - just syncing with libvips 8.16.1.

What's Changed

Full Changelog: v1.5.0...v1.5.1

v1.5.0

25 Jan 23:29
88337e2
Compare
Choose a tag to compare

What's Changed

  • Bump org.apache.commons:commons-text from 1.12.0 to 1.13.0 by @dependabot in #127
  • Expose all vips_image_get functions in VipsHelper by @lopcode in #134

Full Changelog: v1.4.0...v1.5.0

v1.4.0

20 Dec 15:02
69dba6d
Compare
Choose a tag to compare

Breaking change 💥

#129 includes a fix for a strange API interaction that required you to create a new, blank VImage before being able to use certain operations that don't actually reference it. The functions that call these operations are now static, and require an arena to be passed.

For example, VImage.thumbnail is now a static method. This direct thumbnail mechanism is preferred, and offers quality improvements, as noted in the docs for vips_thumbnail_image. An example of usage is available in the samples.

All affected VImage functions are listed here: analyzeload, arrayjoin, bandjoin, bandrank, black, composite, csvload, csvloadSource, eye, fitsload, fitsloadSource, fractsurf, gaussmat, gaussnoise, gifload, gifloadBuffer, gifloadSource, grey, heifload, heifloadBuffer, heifloadSource, identity, jp2kload, jp2kloadBuffer, jp2kloadSource, jpegload, jpegloadBuffer, jpegloadSource, jxlload, jxlloadBuffer, jxlloadSource, logmat, magickload, magickloadBuffer, maskButterworth, maskButterworthBand, maskButterworthRing, maskFractal, maskGaussian, maskGaussianBand, maskGaussianRing, maskIdeal, maskIdealBand, maskIdealRing, matload, matrixload, matrixloadSource, openexrload, openslideload, openslideloadSource, pdfload, pdfloadBuffer, pdfloadSource, perlin, pngload, pngloadBuffer, pngloadSource, ppmload, ppmloadSource, radload, radloadBuffer, radloadSource, rawload, sdf, sines, sum, svgload, svgloadBuffer, svgloadSource, switch1, text, thumbnail, thumbnailBuffer, thumbnailSource, tiffload, tiffloadBuffer, tiffloadSource, tonelut, vipsload, vipsloadSource, webpload, webploadBuffer, webploadSource, worley, xyz, zone.

What's Changed

  • Add docker test suite, include debian 12 to start by @lopcode in #122
  • Signpost libvips-dev on Debian / Ubuntu by @lopcode in #123
  • Bump the jackson group with 2 updates by @dependabot in #124
  • Bump jvm from 2.0.21 to 2.1.0 by @dependabot in #125
  • Bump org.gradle.toolchains.foojay-resolver-convention from 0.8.0 to 0.9.0 by @dependabot in #126
  • Fix having to create blank VImages for operations that should be static by @lopcode in #129

Full Changelog: v1.3.0...v1.4.0

v1.3.0

22 Nov 23:18
704082f
Compare
Choose a tag to compare

What's Changed

  • Remove unnecessary GitHub funding file by @lopcode in #114
  • Bump the jackson group with 2 updates by @dependabot in #115
  • Use more intuitive thumbnail image operation in examples by @lopcode in #117
  • Add a way to override library paths using system properties by @lopcode in #120

Full Changelog: v1.2.2...v1.3.0

v1.2.2

31 Oct 09:28
7517af5
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.2.1...v1.2.2