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).
- A new NetVips.Extensions package containing useful helpers (#41).
- Add
Image.Switch()
,image.Case()
andimage.NewFromMemoryCopy()
operations. - Add support for the short-circuit operators (
&&
/||
). - Add
Enums.Signals
andImage.EvalDelegate
that can be used withimage.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
.
- This is a low-level operation, make sure you free the returned memory with
Changed
- The
image.SetType()
function has been renamed toimage.Set()
. - The
Image.Sum()
function uses the params keyword. - Speed-up
Operation.Call
. - Free the
VipsOperation
pointers withinOperation.Call
earlier (#53). - Unset the
GValue
withinVipsObject.Set
andVipsObject.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()
andimage.IsKilled()
(#31, libvips/libvips@91d0e7e). - Add
NetVips.ProfileSet()
,NetVips.VectorSet()
,NetVips.ConcurrencySet()
andNetVips.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 forimage.Getpoint(x, y)
. - Add missing arithmetic operators (
1 - image
,1 / image
, etc.). - Add support for identifying image formats (
Image.FindLoad()
,Image.FindLoadBuffer()
andImage.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 toEqual
andNotEqual
to avoid conflicts withnull
checks. - Some methods are overloaded instead of defining the parameters as
object
type. - The base class was renamed from
Base
toNetVips
to comply with the C# code conventions. - The
Operation.VipsCacheSet*
utilities has been moved toNetVips.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!