Table of Contents

Version 4.147.0

Preview only · Superseded by 4.148.0 · Never released as stable — these changes rolled up into 4.148.0 · NuGet

API changes · SkiaSharp API diff · HarfBuzzSharp 8.3.1.6

Highlights

Version 4.147.0 was the first major-version v4 preview of SkiaSharp, upgrading the Skia engine to milestone 147 and introducing a raft of new capabilities: variable font support in both SkiaSharp and HarfBuzzSharp, color font palette handling, animated WebP encoding via SKWebpEncoder, zero-copy stream-to-data conversion, and a new HBColor struct. Platform coverage expanded with Linux Bionic native assets, Tizen x64/arm64 native builds, and C# 13 support on legacy TFMs. All of this work shipped cumulatively in 4.148.0. Community contributors @ramezgerges, @4Darmygeometry, @SimonvBez, @ebariche, and @Copilot all contributed meaningful features in this cycle.

Engine

  • Skia milestone 147 — Upgrades the native Skia engine to Chrome milestone m147. ❤️ @ramezgerges (#3702)

API Surface

  • Variable font support — Adds HBFace and HBFont variable-instance APIs to both SkiaSharp and HarfBuzzSharp, enabling programmatic access to OpenType font variation axes. ❤️ @ramezgerges (#3703)
  • Color font palette support — Adds color palette APIs for emoji and color fonts, plus improved variable font robustness. (#3742)
  • SKWebpEncoder — Animated WebP encoding — New encoder for producing multi-frame animated WebP files. (#3771)
  • SKStream.GetData() — Zero-copy conversion from a stream to SKData, avoiding unnecessary memory allocations. (#3772)
  • SKSamplingOptions on SKSurface.Draw / SKCanvas.DrawSurface — Adds filtering-quality overloads for surface-to-canvas drawing. ❤️ @Copilot (#3491)
  • HBColor struct — Proper managed type for hb_color_t, enabling correct color glyph API usage in HarfBuzzSharp. (#4000)
  • Missing API wrappers and naming fixes — Adds several missing C# wrappers and corrects naming-convention violations in the public API. (#4001)
  • v4 major-version upgrade — Bumps SkiaSharp from 3.x to 4.x, starting the new major-version line. (#3640)

Bug Fixes

  • Fixed SKPath finalizer crash — Resolves a crash when SKPathBuilder is collected before the SKPath it created. ❤️ @ramezgerges (#3796)
  • Fixed default-typeface resolution — Moves default-typeface lookup to the managed layer, fixing incorrect typeface fallback. ❤️ @ramezgerges (#3730)

Platform

  • Linux Bionic native assets — Adds prebuilt native libraries for Android Bionic libc on Linux, useful for custom runtimes. ❤️ @4Darmygeometry (#3217)
  • Tizen x64 and ARM64 native builds — Adds x64 and ARM64 native library builds for Tizen, completing cross-architecture support. (#3620)
  • WASM: Dropped pre-.NET 8 Emscripten builds — Removes legacy Emscripten native builds targeting runtimes older than .NET 8. (#4022)
  • Fixed Apple platform TFMs — Uses .26.0 TFMs for library projects and unversioned TFMs for app projects, matching the .NET MAUI convention. (#3798)
  • Fixed Android SKGLView not rendering after MAUI tab switch — Resolves a rendering blank after switching tabs in a MAUI TabBar on Android. ❤️ @SimonvBez (#3076)
  • C# 13 support on legacy TFMs — Uses PolySharp to polyfill C# 13 language features on net48 / netstandard targets. ❤️ @4Darmygeometry (#3642)

Security

  • libpng updated to 1.6.58 (#3718)
  • libexpat updated to 2.7.5 (#3717)
  • libjpeg-turbo updated to 3.1.4.1 (#4012)
  • freetype updated to 2.14.3 (#3726)
  • zlib updated to 1.3.2.1-motley (#3720)

Platform Support

Platform What's New
🍎 Apple Fixed platform TFMs for libraries vs apps
🤖 Android Fixed SKGLView blank after MAUI tab switch
🌐 WebAssembly Dropped pre-.NET 8 Emscripten builds
🐧 Linux Linux Bionic native assets
📦 General Tizen x64/arm64 native builds; C# 13 on legacy TFMs

Community Contributors ❤️

Contributor What They Did
@ramezgerges Skia m147 engine bump; variable font support; SKPath finalizer fix; default-typeface fix; SkiaSharpGenerator Linux support
@Copilot SKSamplingOptions overloads for SKSurface.Draw and SKCanvas.DrawSurface
@4Darmygeometry Linux Bionic native assets; C# 13 support on legacy TFMs
@SimonvBez Fixed Android SKGLView rendering after MAUI tab switch
@ebariche Reduced SkiaFiddle WASM application size by ~60%

Preview 3 (May 24, 2026)

Added HBColor struct, dependency updates (libjpeg-turbo, freetype, zlib), missing API wrappers and naming fixes, Blazor Gallery redesign, and dropped pre-.NET 8 WASM Emscripten support.

Full Changelog


Preview 2 (May 6, 2026)

Added SKWebpEncoder for animated WebP, SKStream.GetData() for zero-copy conversion, fixed SKPath finalizer crash, fixed Apple platform TFMs, and expanded the gallery with five new interactive samples.

Full Changelog


Preview 1 (April 28, 2026)

Launched SkiaSharp v4: upgraded to Skia m147, introduced variable font support, color font palettes, SKSamplingOptions overloads, Linux Bionic native assets, Tizen x64/arm64 native builds, fixed Android SKGLView rendering, fixed default-typeface resolution, and added C# 13 support on legacy TFMs.

Full Changelog