ImageSharp

A modern, fully featured, fully managed, cross-platform, 2D graphics library for.NET.

Install anywhere

ImageSharp carries no native dependencies and can be installed anywhere that supports .NET Standard 1.3+, ImageSharp can be used in device, cloud, and embedded/IoT scenarios.

PM > Install-Package SixLabors.ImageSharp

An API for everyone

ImageSharp's API is unparalleled for it's ease of use. Designed from the ground up to be flexible and extensible, the library provides API endpoints for common image processing operations and the building blocks to allow for the development of additional operations.

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;

using var image = Image.Load("original.jpg");
image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2)); 
image.Save("result.jpg");

A powerful feature set

ImageSharp is brimming with features. Common operations are only a few keystrokes away.

  • Complete support for jpeg, bmp, png, gif, and tga with more formats on the way.
  • Supports over 25 different pixel formats.
  • Metadata editing support (IPTC EXIF).
  • Colorspace transforms (RGB/CMYK/Grayscale/CIELab and many more).
  • Over 40 common processing operations.
  • Great performance and memory friendly; work with any dimensions (even hundreds of megapixels)
using SixLabors.ImageSharp.Formats.Gif;
using SixLabors.ImageSharp.Metadata;

const int frameDelay = 42;
const int colorTableLength = 128;
const GifDisposalMethod disposalMethod = GifDisposalMethod.RestoreToBackground;

using var image = await Image.LoadAsync("original.gif");
foreach (ImageFrame frame in image.Frames)
{
  GifFrameMetadata metaData = frame.Metadata.GetGifMetadata();
  metaData.FrameDelay = frameDelay;
  metaData.ColorTableLength = colorTableLength;
  metaData.DisposalMethod = disposalMethod;
}

await image.SaveAsync("result.gif");