Cross-Platform 2D Graphics with SkiaSharp

Miguel de Icaza

Today we’re launching SkiaSharp, a cross-platform, high-performance 2D API for .NET developers available across mobile, desktops, and servers.

SkiaSharp provides a powerful C# API for doing 2D graphics powered by Google’s Skia library, the same library that powers Google Chrome, Firefox, and Android’s graphic stacks.

SkiaSharp ships conveniently as a cross-platform NuGet package, and supports the following platforms out of the box: MacOS X, Android and iOS with Mono, and the Windows Desktop with .NET. As NuGet evolves, we’ll offer this for .NET Core and assorted Linux distributions (In the meantime, if you need it now, you can build SkiaSharp yourself).

SkiaSharp - a cross platform 2D graphics library.

Getting Started

First, install the SkiaSharp NuGet and then check out our Introduction.

To help you start writing drawing code today, take a look at the landing page for SkiaSharp.

Why We Chose Skia

While Mono has supported System.Drawing for a while, and we built a CoreGraphics-powered version for Mac/iOS, it has never been a pixel-perfect match for the original .NET implementation of System.Drawing. Mono.Cairo is also generally available, but has some limitations that are difficult to work around.

Skia gives us the same graphics output across all platforms, is actively maintained, and offers great features not found elsewhere, like filters and hardware accelerated graphics.

The Future

SkiaSharp is a work in progress that we’re sharing with our community. While we have bound important parts of the Skia API, much work remains to be done. We’re using the stable C API surfaced by Skia, and our plan is to continue contributing our work to the C bindings of Skia to provide full coverage to the APIs.

To help us guide our binding efforts, please leave comments or suggestions as issues on the GitHub repository:


Discussion is closed.

Feedback usabilla icon