The Graphics Mill for .NET core class library contains classes implementing all imaging functionality (loading/saving images, applying effects, transforms, drawing, etc).
Graphics Mill for .NET supports the following file formats:
There are also available Graphics Mill for .NET add-ons which will give additional format support:
Images can be loaded not only from files, but also from sources. This way you can load images from databases, memory, URL, etc.
The essential feature of Graphics Mill for .NET is the possibility to extract thumbnails in a fast and memory-friendly way. It is achieved by generating thumbnails on-the-fly, while the file is read. For example if you are generating a 100x100 thumbnail from a 4000x4000 image, Graphics Mill for .NET allows you to avoid occupying 64 megabytes (as would happen if you first loaded the image, then resized it). It can create a thumbnail while reading the image from the file, so you will never commit extra memory.
Alternatively, you can load (as well as save) not pixels, but EXIF, IPTC, XMP, and Adobe® image resource blocks metadata collections from files. In particular, this allows to extract thumbnails from files even faster than on-the-fly technique described above.
One more great feature is the possibility to process uncompressed JPEG files. In particular, you can:
When saving animated GIF files, you can enable optimization. Whenever possible, it will crop out the same portions of two neighbour frames, and this way highly reduce the output GIF file size. Another way of optimization is casting all frames palettes to a single global palette.
And at last, even if you need some extra file formats to be supported, Graphics Mill for .NET exposes API which enables you to implement your own codec which will be closely integrated into Graphics Mill for .NET.
Graphics Mill for .NET allows you to load and save images in their natural pixel formats: 1, 4, 8, 16, 24, 32, 40, 48, 64, 80 bits per pixel. So if you load a 1-bit image, it won't be converted to a 32-bit image ( thus occupying 32 times more memory);
Most effects can be applied directly to RGB, Grayscale and CMYK image without any conversion. It not only prevents wasting of extra resources, but preserves the image from degradation.
Another important feature of Graphics Mill for .NET is that it supports extended pixel formats, i.e. 16 bits per channel.
To be sure that the hardcopy image will have the same colors as the image file, you need to apply color management. Graphics Mill for .NET allows to do it as easily as possible. The following features are available:
Color reduction is a process of converting TrueColor images into the images with 2-256 colors (i.e. indexed images). It consists of two subtasks - palette generation and the conversion itself. Graphics Mill for .NET excellently resolves both of them.
With Graphics Mill for .NET you can:
When the conversion is starts, a special technique called dithering is used to reduce halftone "washing out". Graphics Mill for .NET supports the following dithering modes:
The transparency information can be preserved when you reduce colors.
Graphics Mill for .NET allows you to apply different imaging operations. You can apply geometry transforms:
You can also apply tone and color adjustment algorithms:
Use different filters:
Apply artistic effects:
There is also available a separate module - Red-Eye Removal which exposes red-eye effect removal functionality (including unique semiautomatic mode).
You can apply effects and color/tone adjustments to a part of the image using a rectangle or a raster mask.
You can also combine images with full support of alpha channel and various combine modes (such as Alpha, Add, Xor, Substract, Texturize, Screen, Overlay and others - total 22 modes). Overall opacity can be specified.
To get statistics about the bitmap you can generate a histogram. Analyzing the histogram you can estimate whether the image is too bright, too dark, or has too low a contrast.
If standard imaging algorithms implemented in Graphics Mill for .NET are not enough for you, you can create your own effects. It becomes easy because Graphics Mill for .NET provides low level access to pixel data.
Graphics Mill for .NET provides a possibility to create multithreaded user interface. It supports classes from the System.Threading namespace that makes it much easier to use. In short, it has the following multithreading features:
Graphics Mill for .NET provides powerful drawing features.