GitHub - iron-software/IronSoftware.System.Drawing: An open-source System.Drawing.Common replacement for .NET 5 and above on all platforms. Bringing together System.Drawing, Maui, and ImageSharp's Bitmap, Image, Font, and Shape types via an agnostic free NuGet package. (original) (raw)

NuGet Installs GitHub Latest Commit GitHub Contributors

IronSoftware.Drawing - Image, Color, Rectangle, and Font class for .NET Applications

IronSoftware.Drawing is an open-source library originally developed by Iron Software that helps C# Software Engineers to replace System.Drawing.Common in .NET projects.

Table of Contents

IronSoftware.Drawing Features:

Implicit Casting Support To AnyBitmap Supported From AnyBitmap Supported
System.Drawing.Bitmap
System.Drawing.Image
SkiaSharp.SKBitmap
SkiaSharp.SKImage
SixLabors.ImageSharp
Microsoft.Maui.Graphics.Platform.PlatformImage
Implicit Casting Support To Color Supported From Color Supported
SkiaSharp.SKColor
SixLabors.ImageSharp.Color
SixLabors.ImageSharp.PixelFormats
Implicit Casting Support To Rectangle Supported From Rectangle Supported To RectangleF Supported From RectangleF Supported
System.Drawing.Rectangle
System.Drawing.RectangleF
SkiaSharp.SKRect
SkiaSharp.SKRectI
SixLabors.ImageSharp.Rectangle
SixLabors.ImageSharp.RectangleF
Implicit Casting Support To Size Supported From Size Supported To SizeF Supported From SizeF Supported
System.Drawing.Size
System.Drawing.SizeF
SkiaSharp.SKSize
SkiaSharp.SKSizeI
SixLabors.ImageSharp.Size
SixLabors.ImageSharp.SizeF
Microsoft.Maui.Graphics.Size
Microsoft.Maui.Graphics.SizeF
Implicit Casting Support To Font Supported From Font Supported
System.Drawing.Font
SkiaSharp.SKFont
SixLabors.Fonts.Font
Implicit Casting Support To Point Supported From Point Supported To PointF Supported From PointF Supported
System.Drawing.Point
System.Drawing.PointF
SixLabors.ImageSharp.Point
SixLabors.ImageSharp.PointF
Microsoft.Maui.Graphics.Point
Microsoft.Maui.Graphics.PointF
SkiaSharp.SKPoint
SkiaSharp.SKPointI

IronSoftware.Drawing has cross platform support compatibility with:

Installing the IronSoftware.Drawing NuGet package is quick and easy, please install the package like this:

PM> Install-Package IronSoftware.System.Drawing

Alternatively, download directly from the official NuGet website.

Once installed, you can get started by adding using IronSoftware.Drawing; to the top of your C# code.

AnyBitmap Code Example

using IronSoftware.Drawing;

// Create a new AnyBitmap object var bitmap = AnyBitmap.FromFile("FILE_PATH"); bitmap.SaveAs("result.jpg");

var bytes = bitmap.ExportBytes();

var resultExport = new System.IO.MemoryStream(); bitmap.ExportStream(resultExport, AnyBitmap.ImageFormat.Jpeg, 100);

// Casting between System.Drawing.Bitmap and IronSoftware.Drawing.AnyBitmap System.Drawing.Bitmap image = new System.Drawing.Bitmap("FILE_PATH"); IronSoftware.Drawing.AnyBitmap anyBitmap = image; anyBitmap.SaveAs("result-from-casting.png");

// Creates a Multi-page Tiff-style AnyBitmap from an Image array List bitmaps = new List() { AnyBitmap.FromFile("FILE_PATH_1"), AnyBitmap.FromFile("FILE_PATH_2") }; AnyBitmap anyBitmap = AnyBitmap.CreateMultiFrameTiff(bitmaps);

// Creates a Multi-page Tiff-style AnyBitmap from a fully qualified file path array List imagePaths = new List() { "FILE_PATH_1", "FILE_PATH_2" }; AnyBitmap anyBitmap = AnyBitmap.CreateMultiFrameTiff(imagePaths);

// Manipulate image frames int frameCount = anyBitmap.FrameCount; List frames = (List)anyBitmap.GetAllFrames;

Color Code Example

using IronSoftware.Drawing;

// Create a new Color object Color fromHex = new Color("#191919"); Color fromRgb = new Color(255, 255, 0); Color fromEnum = Color.Crimson;

// Casting between System.Drawing.Color and IronSoftware.Drawing.Color System.Drawing.Color drawingColor = System.Drawing.Color.Red; IronSoftware.Drawing.Color ironColor = drawingColor;

ironColor.A; ironColor.R; ironColor.G; ironColor.B;

// Luminance is a value from 0 (black) to 100 (white) where 50 is the perceptual "middle grey" ironColor.GetLuminance();

// Gets the 32-bit ARGB value of this Color structure. ironColor.ToArgb();

Rectangle Code Example

using IronSoftware.Drawing;

// Create a new Rectangle object Rectangle rectangle = new Rectangle(5, 5, 50, 50);

// Create a new Rectangle object with MeasurementUnits Rectangle mmRectangle = new Rectangle(5, 5, 50, 50, MeasurementUnits.Millimeters);

// Convert between MeasurementUnits Rectangle pxRectangle = mmRectangle.ConvertTo(MeasurementUnits.Millimeters); // Or specify DPI Rectangle pxRectangleWithDPI = mmRectangle.ConvertTo(MeasurementUnits.Millimeters, 200);

// Casting between System.Drawing.Rectangle and IronSoftware.Drawing.Rectangle System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(10, 10, 150, 150); IronSoftware.Drawing.Rectangle ironRectangle = rectangle;

ironRectangle.X; ironRectangle.Y; ironRectangle.Width; ironRectangle.Height;

Size Code Example

using IronSoftware.Drawing;

// Create a new Size object Size size = new Size(50, 50);

// Casting between System.Drawing.Size and IronSoftware.Drawing.Size System.Drawing.Size systemSize = new System.Drawing.Size(150, 150); IronSoftware.Drawing.Size ironSize = systemSize;

ironSize.Width; ironSize.Height;

Font Code Example

using IronSoftware.Drawing;

// Create a new Font object Font font = new Font("Times New Roman", FontStyle.Italic | FontStyle.Bold, 30);

// Casting between System.Drawing.Font and IronSoftware.Drawing.Font System.Drawing.Font drawingFont = new System.Drawing.Font("Courier New", 30); IronSoftware.Drawing.Font ironFont = drawingFont;

ironFont.FamilyName; ironFont.Style; ironFont.Size; ironFont.Italic; ironFont.Bold;

Support Available

For more information about Iron Software please visit our website: https://ironsoftware.com/

For general support and technical inquiries, please email us at: support@ironsoftware.com