DotImaging alternatives and similar packages
Based on the "Image Processing" category.
Alternatively, view DotImaging alternatives based on common mentions on social networks and blogs.
-
ImageSharp
:camera: A modern, cross-platform, 2D Graphics library for .NET -
ImageProcessor
:camera: A fluent wrapper around System.Drawing for the processing of image files. -
Emgu CV
Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library. -
SimpleITK
SimpleITK: a layer built on top of the Insight Toolkit (ITK), intended to simplify and facilitate ITK's use in rapid prototyping, education and interpreted languages. -
MetadataExtractor
Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files -
MagicScaler
MagicScaler high-performance, high-quality image processing pipeline for .NET -
Colourful
🎨 Open source .NET library for working with color spaces. -
DynamicImage
High-performance open-source image manipulation library for ASP.NET. -
PixelViewer
A cross-platform image viewer which supports reading raw Luminance/YUV/RGB/ARGB/Bayer pixels data from file and rendering it. -
Imgix-CSharp
A C# client library for generating image URLs with imgix -
ImageWizard
Image processing webservice based on ASP.NET Core and ImageSharp / SkiaSharp / SvgNet / DocNET -
TeximpNet
A cross-platform .NET Standard library for reading/manipulating/writing image files. The primary focus is to create 2D/3D/Cubemap textures for graphics/game applications, notably to convert images to GPU compressed formats and generate mipmaps. The library wraps the FreeImage native library to import/export over 30 common image formats, and wraps the Nvidia Texture Tools native library for GPU compression features. It also has a fully featured DDS format importer/exporter written in C#.
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of DotImaging or a related project?
README
DotImaging - .NET array as imaging object
The framework sets focus on .NET native array as primary imaging object, offers extensibility support via extensions, and provides unified platform-abstract imaging IO API.
News
- 5.2.0 version came out (19/02/2019)
- Image enchacement library for DotImaging: DotDevignetting!
So why DotImaging ?
- Image as native .NET 2D array
- portable*
- lightweight
- extensions, extensions, extensions....
*IO and Drawing assemlies depend on OpenCV
Libraries / NuGet packages
Core
-
.NET image array extensions. Color and depth conversions. Slim unmanaged structure for fast pixel manipulation.
Tutorial: Portable Generic Image
//convert to grayscale and flip
Bgr<byte>[,] image = ImageIO.LoadColor("sample.jpg"); //IO package
Gray<byte>[,] grayIm = image.ToGray()
.Flip(FlipDirection.Horizontal);
//get the modified blue channel
var modifiedImage = image.AsEnumerable()
.Select(x => x.B / 2)
.ToArray2D(image.Size());
-
Portable 2D drawing primitives (Extensions for Point, Size, Rectangle and additional primitives)
IO
-
A unified API for IO image access (camera, file, image directory). Portable image loading/saving.
Tutorial: Portable Imaging IO
var reader = new FileCapture("sample.mp4");
reader.Open();
Bgr<byte>[,] frame = null;
while(true)
{
reader.ReadTo(ref frame);
if (frame == null)
break;
frame.Show(scaleForm: true); //UI package
}
reader.Close();
-
Image or video download/streaming (direct video link or Youtube links).
//------get an image from the Web
new Uri("http://vignette3.wikia.nocookie.net/disney/images/5/5d/Lena_headey_.jpg")
.GetBytes().DecodeAsColorImage().Show(); //(Show - UI package)
//------stream a video from Youtube
var pipeName = new Uri("https://www.youtube.com/watch?v=Vpg9yizPP_g").NamedPipeFromYoutubeUri(); //Youtube
var reader = new FileCapture(String.Format(@"\\.\pipe\{0}", pipeName)) //IO package
//... (regular stream reading - see IO package sample)
Interoperability
-
Interoperability extensions between .NET array and System.Drawing.Bitmap.
var image = new Gray<byte>[240, 320];
var bmp = image.ToBitmap(); //to Bitmap
var imageFromBmp = bmp.ToArray() as Bgr<byte>[,]; //from Bitmap
Extensions
-
Image preview dialog and drawing.
Bgr<byte>[,] image = new Bgr<byte>[480, 640];
image.Show(); //show image (non-blocking)
image.ShowDialog(); //show image (blocking)
//draw something
image.Draw(new Rectangle(50, 50, 200, 100), Bgr<byte>.Red, -1);
image.Draw(new Circle(50, 50, 25), Bgr<byte>.Blue, 5);
Getting started
- Just pick what you need. An appropriate readme file will be shown upon selected NuGet package installation.
- Samples
Final word
If you like the project please star it in order to help to spread the word. That way you will make the framework more significant and in the same time you will motivate me to improve it, so the benefit is mutual.