Changelog

All notable changes to NetVips will be documented in this file. See here for the changes to the pre-compiled binaries of libvips.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

1.2.4 - 2020-07-13

Changed

  • Update methods/enums for libvips 8.10.

1.2.3 - 2020-06-21

Added

  • Add support for a single shared libvips binary on Linux and macOS (#83).

1.2.2 - 2020-06-16

Fixed

  • Fix the buffer-based fallback mechanism for NewFromStream / NewFromSource on Windows 32-bit.

Changed

  • Free the associated streams within *loadStream / *saveStream earlier (#78).
  • Speed-up UTF8 string marshalling by using System.Buffers.ArrayPool.

1.2.1 - 2020-03-16

Fixed

  • Fix a bug that freed the stream within Image.NewFromStream too early (#58).

Changed

  • Update enums.

1.2.0 - 2020-01-30

Added

  • Add support for true streaming (#33).
    • See the blogpost and the tutorial for more information.
  • A new NetVips.Extensions package containing useful helpers (#41).
  • Add Image.Switch(), image.Case() and image.NewFromMemoryCopy() operations.
  • Add support for the short-circuit operators (&& / ||).
  • Add Enums.Signals and Image.EvalDelegate that can be used with image.SignalConnect().
  • Add image.RefCount() to get the reference count of an image.
  • Add NetVips.GetOperations() to get a list of operations available within the libvips library.
  • Add VipsProgress struct to the public API.
  • Add image.WriteToMemory(out ulong) to write the image to an unformatted C-style array.
    • This is a low-level operation, make sure you free the returned memory with NetVips.Free.

Changed

  • The image.SetType() function has been renamed to image.Set().
  • The Image.Sum() function uses the params keyword.
  • Speed-up Operation.Call.
  • Free the VipsOperation pointers within Operation.Call earlier (#53).
  • Unset the GValue within VipsObject.Set and VipsObject.Get earlier.
  • The internal function Operation.GenerateImageClass() has moved to the samples directory.

1.1.0 - 2019-07-29

Added

  • A new NetVips.Native package containing the pre-compiled libvips binaries for Linux, macOS and Windows (#21).
    • Changes to the NetVips.Native.* packages will be documented here.
  • Add NetVips.GetSuffixes() to get a list of all the filename suffixes supported by libvips (libvips/ruby-vips#186).
  • Add support for progress feedback (image.SetProgress()) and signal handling (image.SignalConnect()) (#31).
  • Add image.SetKill() and image.IsKilled() (#31, libvips/libvips@91d0e7e).
  • Add NetVips.ProfileSet(), NetVips.VectorSet(), NetVips.ConcurrencySet() and NetVips.ConcurrencyGet() utilities.
  • Add support for loading and saving from and to streams (Image.NewFromStream() / image.WriteToStream()) (#33).
  • Add Region class to read pixels from images without storing the entire image in memory.
  • Add image[x, y] overload as a synonym for image.Getpoint(x, y).
  • Add missing arithmetic operators (1 - image, 1 / image, etc.).
  • Add support for identifying image formats (Image.FindLoad(), Image.FindLoadBuffer() and Image.FindLoadStream()) (#37).
  • Add image.PageHeight property for retrieving the page height for multi-page images.

Changed

  • Improve memory management (#26).
  • The bundled libvips Windows binaries were moved to the NetVips.Native package.
  • Update and improve the NetVips.Benchmarks (#34).
  • The overloadable operators == and != have been changed to Equal and NotEqual to avoid conflicts with null checks.
  • Some methods are overloaded instead of defining the parameters as object type.
  • The base class was renamed from Base to NetVips to comply with the C# code conventions.
  • The Operation.VipsCacheSet* utilities has been moved to NetVips.CacheSet*.
  • Speed-up Operation.Call by avoiding unnecessary loops.
  • Remove usage of LINQ in several critical paths.
  • The composite x and y positions were changed into an array (#39).

Removed

  • The UseGlobalLibvips property since the bundled libvips binaries were moved to the NetVips.Native package.

1.0.7 - 2019-01-18

Changed

  • Update bundled libvips x86/x64 binary to 8.7.4.
  • Speed-up Base.Version by caching the libvips version as soon as the assembly is loaded.

1.0.6 - 2019-01-10

Added

  • The LibvipsOutputBase property to specify the subdirectory (within your project's output directory) where the libvips binaries are copied to (#20).

Changed

  • Update bundled libvips x86/x64 binary to 8.7.3.
  • No exceptions will be thrown by the ModuleInitializer (used to initialize libvips once the assembly is loaded) (#15, #20).

Removed

  • The redundant LibvipsDLLPath property.

1.0.5 - 2018-09-25

Added

  • Bundle pre-compiled libvips binary and its dependencies for 32-bit Windows.

Fixed

  • Fix five small memleaks (libvips/lua-vips#24).

Changed

  • Update bundled libvips binary to 8.7.0.

1.0.4 - 2018-06-28

Added

  • Add contains helper (to check if the image contains an property of metadata).
  • Support 32-bit architecture (#7).

Changed

  • Update bundled libvips binary to 8.6.4.

Fixed

  • Fix a bug that freed a string pointer too early (#9).

1.0.3 - 2018-06-06

Added

  • Bundle pre-compiled libvips binary and its dependencies for 64-bit Windows (#3).

Changed

  • Target .NET Standard 2.0 instead of .NET Core 2.0 (#4).
  • Lower the minimum required .NET Framework version to 4.5 (#4).

1.0.2 - 2018-04-23

Added

  • Add missing libvips 8.7 methods.
  • Add logging handler to log warnings and debug messages from libvips.

Fixed

  • Fix a bug that tried to reference an empty pointer.
  • Fix a bug that causes libvips arguments to be set incorrectly.
  • Fix up memory errors and leaks.
  • Prevent the GC from unsetting the gvalue and disposing a delegate prematurely.

1.0.1 - 2018-04-10

Fixed

  • Fix reference count bug.

1.0.0 - 2018-04-08

Added

  • First release!
  • Improve this Doc
Back to top Generated by DocFX