Skip to content

Releases: cshum/vipsgen

v1.3.9

24 Mar 15:38
f109aaa

Choose a tag to compare

What's Changed

  • fix: image from file path with special chars and option string by @cshum in #87
  • fix: use typed C temporaries for scalar output params by @cshum in #88

Full Changelog: v1.3.8...v1.3.9

v1.3.8

11 Mar 17:47
2eb79fb

Choose a tag to compare

What's Changed

  • Only detect the actual Seek() function when setting Seeker function by @vansante in #84
  • build: update generated vips packages by @github-actions[bot] in #85

New Contributors

Full Changelog: v1.3.7...v1.3.8

v1.3.7

07 Mar 18:09
344bdff

Choose a tag to compare

What's Changed

  • docs: working with animated images by @cshum in #82
  • fix: memory leak in getting int slice output by @cshum in #83

Full Changelog: v1.3.5...v1.3.7

v1.3.5

02 Mar 10:33
2f2f359

Choose a tag to compare

image.WriteToMemory

Export a vips image as raw pixel bytes — the symmetric counterpart to NewImageFromMemory:

buf, err := img.WriteToMemory()

Use Width(), Height(), Bands(), and BandFormat() to interpret the buffer. See examples/go_image for a complete example of converting between Go's image.Image and vips using raw memory.

What's Changed

Full Changelog: v1.3.3...v1.3.5

v1.3.3

01 Mar 13:55
32bd01d

Choose a tag to compare

Bug fix: vips.KeepNone now works correctly

Previously, setting Keep: KeepNone (or relying on VIPS_STRIP_METADATA=1
via imagor) had no effect — metadata was always preserved.

This was because vipsgen_set_int skipped zero values, so KeepNone = 0 was
silently dropped and libvips defaulted to keeping all metadata.

  • Added vipsgen_set_keep: a dedicated C setter for the keep parameter
  • KeepNone is remapped to -1 in Go; vipsgen_set_keep translates it back
    to C VIPS_FOREIGN_KEEP_NONE (0) before passing to libvips
  • Zero value of Keep (0) now safely means "not set" — libvips uses its
    own default (keep all)

What's Changed

  • fix: pass keep=0 (KeepNone) through to libvips for metadata stripping by @cshum in #78
  • refactor: flag handling for VipsForeignKeep by @cshum in #79

Full Changelog: v1.3.1...v1.3.3

v1.3.1

07 Jan 06:04

Choose a tag to compare

What's Changed

  • feat: add --include-test flag for conditional test generation by @cshum in #70
  • feat(target): add seek support for targets by @ekazakas in #73
  • build: update generated vips packages for #73 by @github-actions[bot] in #74

New Contributors

Full Changelog: v1.3.0...v1.3.1

v1.3.0

20 Dec 14:22
cdc685d

Choose a tag to compare

libvips 8.18 and multi-version pre-generated packages

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

  • Updated to libvips 8.18.0 - Latest bindings include support for all new operations and features in libvips 8.18

  • Pre-generated bindings for multiple libvips versions- Now shipping with bindings for libvips 8.16.1, 8.17.3, and 8.18.0

    • github.com/cshum/vipsgen/vips for libvips 8.18.x (recommended)
    • github.com/cshum/vipsgen/vips817 for libvips 8.17.x
    • github.com/cshum/vipsgen/vips816 for libvips 8.16.x

What's Changed

  • build: libvips 8.18 and add multi-version pre-generated packages support by @cshum in #69

Full Changelog: v1.2.1...v1.3.0

v1.2.1

24 Oct 17:08
1ac68bf

Choose a tag to compare

What's Changed

  • fix: signed Integer Interpretation for optional outputs by @cshum in #63

Full Changelog: v1.2.0...v1.2.1

v1.2.0

24 Oct 09:27

Choose a tag to compare

Optional Output Parameters Support

vipsgen v1.2.0 introduces optional output parameters for common argument types. See examples.

Smartcrop with Attention Coordinates

Operation: vips_smartcrop
Optional Outputs: AttentionX, AttentionY

The coordinates where the algorithm detected the most interesting content for cropping.

options := vips.DefaultSmartcropOptions()
err := img.Smartcrop(width, height, options)

// Access the attention coordinates
fmt.Printf("Attention Center: x=%d, y=%d\n", options.AttentionX, options.AttentionY)

Mosaic with Transformation Parameters

Operation: vips_mosaic
Optional Outputs: Dx0, Dy0, Scale1, Angle1, Dx1, Dy1

The detected transformation parameters when combining two images.

options := vips.DefaultMosaicOptions()
err := img1.Mosaic(img2, direction, xref, yref, xsec, ysec, options)

// Access transformation parameters
fmt.Printf("Integer Offset: dx0=%d, dy0=%d\n", options.Dx0, options.Dy0)
fmt.Printf("Detected Scale: %.3f\n", options.Scale1)
fmt.Printf("Detected Rotation: %.3f degrees\n", options.Angle1)

What's Changed

  • feat: optional output arguments support for int, float64, and bool by @cshum in #61

Full Changelog: v1.1.3...v1.2.0

v1.1.3

10 Oct 17:45
bbcdb8c

Choose a tag to compare

What's Changed

  • build: libvips 8.17.2 by @cshum in #57
  • feat: SetArrayInt and SetArrayDouble by @cshum in #56

Full Changelog: v1.1.2...v1.1.3