Version 1.68.0
SkiaSharp
A cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
Major Changes
- Update to skia milestone 68
- Rewritten hardware-accelerated surface creation (see more)
GRBackendRenderTargetDesc
andGRBackendTextureDesc
are now deprecated and replaced withGRBackendRenderTarget
andGRBackendTexture
- The 8-bit indexed color type (
Index8
) is no longer supported and has been removed - Color tables (
SKColorTable
) are no longer supported - The Visual C++ Runtime is now statically linked on Windows Classic
- New Linux binaries on NuGet in the separate package:
SkiaSharp.NativeAssets.Linux
(see #312)
Changes
- Working with files (decoding, encoding, processing) has major performance improvements
- The font manager (
SKFontManager
) is more powerful and can load font family sets (SKFontStyleSet
) and match more characters - Images (
SKImage
) can now be decoded and created more easily - PDF documents now have more creation options with
SKDocumentPdfMetadata
- Multiple text members added to
SkPaint
:BreakText
,GetGlyphs
,CountGlyphs
,ContainsGlyphs
,GetGlyphWidths
,GetTextIntercepts
,GetPositionedTextIntercepts
,GetHorizontalTextIntercepts
- Added support for
SKTextBlob
andSKTextBlobBuilder
as a first step to improving text support - More text members have been added to
SKTypeface
:GetGlyphs
andCountGlyphs
- The
SKSurfaceProps
struct has been superseded by theSKSurfaceProperties
class - All
SKPixmap
,SKImage
andSkBitmap
can now resize their pixel data withScalePixels
- Fixed multiple bugs
- Several new method overloads for common operations with surfaces, shaders and effects
Links
NuGet | Code Diff | Project | Milestone | Changelog | CI
SkiaSharp.Views
A set of pre-prepared UI views, panels and surfaces for drawing. One of these views can be added to the view hierarchy, and then be used for drawing without the need for complex setup. There is also a set of extension methods for converting to/from SkiaSharp and native types.
Changes
- The UWP hardware-accelerated view has been rewritten and now works on more devices and has multiple bug fixes
- The delegates on macOS, iOS and tvOS are now deprecated in favor of events and overridden methods
- The use of renderers in conjunction with SkiaSharp views on Android has been deprecated in favor of events
- All views have been updated to prefer the
OnPaintSurface
method when overriding the drawing method - The hardware-accelerated event arguments (
SKPaintGLSurfaceEventArgs
) now suggest using the new GPU types
Links
SkiaSharp.Views.Forms
A set of pre-prepared views for Xamarin.Forms, for fully cross-platform drawing code. There are views for both CPU and GPU backends, along with extension methods for converting to/from SkiaSharp and Xamarin.Forms types. Currently available for iOS, Android, UWP, macOS (preview) and Tizen (preview).
Changes
- The hardware-accelerated event arguments (
SKPaintGLSurfaceEventArgs
) now suggest using the new GPU types - The Android
SKGLView
is now a transparent view
Links
HarfBuzzSharp (preview)
HarfBuzz is a text shaping engine, and HarfBuzzSharp exposes some of the functionality to managed .NET applications.
Links
SkiaSharp.HarfBuzz (preview)
Support for text shaping using the HarfBuzz text shaping library. This package adds the SKShaper
type that can shape a string, returning the codepoints and their positions.
This package also adds some extension methods to SKCanvas
to make drawing shaped text easier. These methods include DrawShapedText
and it's overloads.
Links
Linux (preview)
Because we love everyone in the Linux world just as well as the Microsoft and the Xamarin worlds, we have also included some pre-built Linux native binaries in a new, separate package (see #312):
SkiaSharp.NativeAssets.Linux
At the current time, it just contains a Ubuntu 16.04 amd64 build that should work on most Debian-based Linux distributions. More builds can be requested by leaving a comment on #453.
If a specific platform is required, you can easily build your own binaries by following this guide.
Samples
There are a large set of samples that show many different features of SkiaSharp. They are broken up into two main groups:
- Basic - these are minimal samples that show just what is needed to use SkiaSharp
- Gallery - these are comprehensive samples that show off new, or exciting features of SkiaSharp
All the samples that have been built and tested for this version of SkiaSharp can be downloaded in the "Assets" links.