Table of Contents

Version 4.147.0

Major release — new APIs, new platforms, and a new major version · Preview only · NuGet · GitHub Release

Highlights

SkiaSharp 4.x is here, built on Skia milestone 147. This release brings variable font support and color font palettes to the text API, animated WebP encoding, and a zero-copy SKStream.GetData() for efficient data access. Platform reach expands with Linux Bionic and Tizen x64/arm64 support landing thanks to community contributors @4Darmygeometry and @ramezgerges, who also drove the core Skia milestone bump and a full WebAssembly gallery sample.

Breaking Changes

SkiaSharp 4.x is a new major version. Consumers referencing 3.x packages will need to update their NuGet references. The public API surface is otherwise additive.

New Features

Engine

  • Skia milestone 147 — Updated the underlying Skia engine to milestone 147, bringing all upstream rendering improvements and fixes. ❤️ @ramezgerges (#3702)
  • Skia milestone 133 and 132 — Intermediate engine bumps picked up from the 3.x series. (#3660) ❤️ @ramezgerges (#3560)

Text & Fonts

  • Variable font support — Full variable font axis enumeration and manipulation in both SkiaSharp and HarfBuzzSharp, allowing fine-grained control over weight, width, and custom axes. ❤️ @ramezgerges (#3703)
  • Color font palette support — Enumerate and select color font palettes (e.g. emoji and decorative fonts that ship multiple color schemes). Includes robustness improvements to variable font rendering. (#3742)
  • Default typeface resolution fix — Moved default-typeface resolution to the managed layer to fix incorrect font fallback behavior. ❤️ @ramezgerges (#3730)

API Surface

  • SKStream.GetData() — Zero-copy stream-to-data conversion, avoiding extra allocations when reading stream contents as SKData. (#3772)
  • Animated WebP encoding (SKWebpEncoder) — Encode multi-frame animated WebP images directly from SkiaSharp. (#3771)
  • SKSamplingOptions on SKSurface.Draw / SKCanvas.DrawSurface — Exposes sampling quality control on surface drawing operations. ❤️ @Copilot (#3491)

Platform

  • Linux Bionic native assets — Adds pre-built native libraries for Linux Bionic (Android's libc-based Linux variant), broadening deployment scenarios. ❤️ @4Darmygeometry (#3217)
  • Tizen x64 and arm64 — Native build support for Tizen on both architectures. (#3620)
  • Apple platform TFM fix — Corrected Apple platform target framework monikers to use versioned TFMs for libraries and unversioned for apps, resolving compatibility issues. (#3798)
  • C# 13 support on legacy TFMs — PolySharp added to enable C# 13 language features on older target frameworks. ❤️ @4Darmygeometry (#3642)
  • Uno Platform WebAssembly gallery — Full interactive gallery running on WebAssembly via Uno Platform, including a SkiaFiddle live editor. ❤️ @ramezgerges (#3758, #3762, #3790)
  • Interactive Blazor gallery samples — Five new interactive samples plus a redesigned Blazor home page. (#3757)

Security

  • libpng updated to 1.6.58 — Picks up upstream security and stability fixes. (#3718)
  • libexpat updated to 2.7.5 — Picks up upstream security fixes. (#3717)

Bug Fixes

  • SKPath finalizer crash — Fixed a crash when SKPathBuilder was garbage-collected before the SKPath it created, causing a double-free in the finalizer. ❤️ @ramezgerges (#3796)
  • Android SKGLView not rendering after tab switch — Fixed SKGLView going blank when switching back to a tab containing it in a MAUI TabBar. ❤️ @SimonvBez (#3076)

Plus several CI and documentation improvements.

Platform Support

Platform What's New
🍎 Apple TFM compatibility fix for libraries vs. apps
🤖 Android Fixed SKGLView rendering after MAUI tab switch
🐧 Linux Linux Bionic native assets
🎨 Core API Variable fonts, color palettes, animated WebP, SKStream.GetData()
🌐 WebAssembly Uno Platform WebAssembly gallery

Community Contributors ❤️

Contributor What They Did
@ramezgerges Bumped Skia to milestone 147, added variable font support, fixed default typeface resolution, fixed SKPath finalizer crash, improved Uno Platform samples
@4Darmygeometry Added Linux Bionic native assets, enabled C# 13 on legacy TFMs
@SimonvBez Fixed SKGLView not rendering after MAUI tab switch on Android
@Copilot Added SKSamplingOptions support to SKSurface.Draw and SKCanvas.DrawSurface

Preview 2

Added SKStream.GetData() for zero-copy stream-to-data conversion, animated WebP encoding (SKWebpEncoder), fixed SKPath finalizer crash, and fixed Apple platform TFMs.

Full Changelog


Preview 1

Bumped Skia to milestone 147, added variable font support and color font palette support, introduced Linux Bionic native assets, Tizen x64/arm64 support, an Uno Platform WebAssembly gallery, security updates to libpng and libexpat, and the major version bump to 4.x.

Full Changelog