Releases: lopcode/vips-ffm
v1.8.0
Notable changes
VImage.newFromMemory
andVImage.writeToMemory
now both use the FFMMemorySegment
API to avoid unnecessary copies to/from aByteBuffer
, and allow operating on multi-gigabyte images- Note that you can still use
MemorySegment.ofBuffer
to continue to use a ByteBuffer as input, orMemorySegment.ofArray
to input a Javabyte[]
array - See the Java MemorySegment API for more helper methods to various common Java types
- Note that you can still use
- 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 🎉
- @jebbench made their first contribution in #164
- @versi-tech made their first contribution in #163
Commits
- Add note to usage example about untrusted operations by @lopcode in #162
- Add operationalisation section to README, guidance on jemalloc by @jebbench in #164
- Bump jvm from 2.1.21 to 2.2.0 by @dependabot[bot] in #160
- Add support for multi-output operations by @versi-tech in #163
- Add support for vips_image_write_to_memory by @versi-tech in #166
Full Changelog: v1.7.1...v1.8.0
v1.7.1
What's Changed
- Bump the jackson group with 2 updates by @dependabot in #157
- Add support for vips_image_new_from_memory by @lopcode in #159
Full Changelog: v1.7.0...v1.7.1
v1.7.0
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
andasByteBuffer
methods (usegetUnsafeStructAddress
andasArenaScopedByteBuffer
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

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
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+

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
v1.5.1
No public facing API changes - just syncing with libvips 8.16.1
.
What's Changed
- Bump jvm from 2.1.0 to 2.1.10 by @dependabot in #135
- Bump the jackson group with 2 updates by @dependabot in #136
- Bump org.slf4j:slf4j-bom from 2.0.16 to 2.0.17 in the slf4j group by @dependabot in #137
- Build with libvips 8.16.1 by @lopcode in #139
- Bump version to 1.5.1 by @lopcode in #140
Full Changelog: v1.5.0...v1.5.1
v1.5.0
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
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
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
What's Changed
- Bump jvm from 2.0.20 to 2.0.21 by @dependabot in #109
- Update for libvips 8.16.0 by @lopcode in #113
Full Changelog: v1.2.1...v1.2.2