All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- A
Name
property to theGmicBitmap
class.- This replaces the
AddInputImage(TGmicBitmap, string)
method in theGmic<TGmicBitmap>
class. - G'MIC scripts can set the name of the output images.
- This replaces the
- The
Gmic<TGmicBitmap>
class no longer implementsIDisposable
(breaking change). - The
Gmic<TGmicBitmap>
class no longer implements the Event-based Asynchronous Pattern (breaking change).- The Event-based Asynchronous Pattern was replaced by the Task-based Asynchronous Pattern in .NET 4.0.
- Renamed the
RunGmicTaskAsync
methods toRunGmicAsync
in theGmic<TGmicBitmap>
class (breaking change). - All of the
RunGmic*
methods in theGmic<TGmicBitmap>
class now take the input images as a parameter (breaking change).- This allows the
RunGmicAsync
methods to execute G'MIC commands in parallel.
- This allows the
- The G'MIC worker now uses dedicated thread with a larger stack size.
- Removed the bit-depth from the
GmicPixelFormat
value names. - Renamed the
GmicPixelFormat
Rgba
value toRgbAlpha
The return value documentation for RunGmic
.
A few bugs in the GmicBitmap
IDisposable
implementation.
- The
AddInputImage
methods in theGmic<TGmicBitmap>
class. - The
ClearInputImages
method in theGmic<TGmicBitmap>
class. - The
void RunGmicAsync(string)
andRunGmicAsyncCancel
methods in theGmic<TGmicBitmap>
class. - The
RunGmicCompleted
andRunGmicProgressChanged
events in theGmic<TGmicBitmap>
class.
v0.7.0 - 2020-07-10
- Support for changing the host application name seen by G'MIC scripts through the
HostName
property inGmic<TGmicBitmap>
. RunGmicTaskAsync
methods for Task-based Asynchronous Pattern support.- A
GrayAlpha16
value to theGmicPixelFormat
enumeration (breaking change). - Support for running on BSD, Linux and macOS when using .NET Standard 2.1.
- The
CustomResourcePath
property now supports paths non-ASCII characters. - Throw an exception if
AddInputImage
is called while G'MIC is running. - Throw an exception if
ClearInputImages
is called while G'MIC is running. - Updated
Gmic<TGmicBitmap>
to conform to the Event-based Asynchronous Pattern (breaking change). RunGmic(string)
is now a synchronous call, useRunGmicAsync
orRunGmicTaskAsync
for asynchronous calls (breaking change).- Raise the
RunGmicCompleted
andRunGmicProgressChanged
events on the thread that calledRunGmicAsync
. GdiPlusGmicBitmap
now checks if the class has been disposed before using the bitmap.- Changed the native library names and deployment location to work with NuGet.
- Custom
GmicBitmap
classes now have to perform their own conversion to/from the G'MIC image format (breaking change). - Rename the
Gray
value in theGmicPixelFormat
enumeration toGray8
(breaking change). - Throw an exception if
GetEnumerator
is called after theOutputImageCollection<TGmicBitmap>
class has been disposed.
- The progress update event will only be fired when the value changes.
- The
CustomUserFilePath
property inGmic<TGmicBitmap>
. - The
RunGmic(string, CancellationToken)
method. - The
GmicBitmapLock
structure. - The
Bgr24
,Bgr32
,Bgra32
andRgb32
values from theGmicPixelFormat
enumeration.
- A
ClearInputImages
method to theGmic<TGmicBitmap>
class. - A
GdiPlusGmicBitmap(Image)
constructor overload. - A Changelog.
- Improved type-safety for the
Gmic
class, it now uses a generic parameter to specify theGmicBitmap
class that is in use. (breaking change) - The
IGmicOutputImageFactory
now uses a generic parameter to specify theGmicBitmap
class that is in use. (breaking change) - The
GdiPlusGmicBitmap(int, int, PixelFormat)
constructor overload is now internal. (breaking change) - GDI+ Bitmaps that use an unsupported
PixelFormat
are converted to a supported format instead of throwing an exception. - Improved the exception documentation for multiple methods.
- Replaced
Delegate.BeginInvoke
because it is not supported on .NET Core.
- Dispose of the previous output bitmaps before setting new ones.
- A few race conditions related to
System.Threading.Timer
. - The
GdiPlusGmicBitmap(Bitmap)
constructor overload now clones the input image. - An issue with the
CancellationToken
when updating the G'MIC status. - An issue where G'MIC would always be reported as running.
- An issue that would hang an application that waited for G'MIC to complete.
The OutputImageInfo
structure
First version