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
HBFaceandHBFontvariable-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 toSKData, avoiding unnecessary memory allocations. (#3772)SKSamplingOptionsonSKSurface.Draw/SKCanvas.DrawSurface— Adds filtering-quality overloads for surface-to-canvas drawing. ❤️ @Copilot (#3491)HBColorstruct — Proper managed type forhb_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
SKPathfinalizer crash — Resolves a crash whenSKPathBuilderis collected before theSKPathit 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.0TFMs for library projects and unversioned TFMs for app projects, matching the .NET MAUI convention. (#3798) - Fixed Android
SKGLViewnot rendering after MAUI tab switch — Resolves a rendering blank after switching tabs in a MAUITabBaron Android. ❤️ @SimonvBez (#3076) - C# 13 support on legacy TFMs — Uses PolySharp to polyfill C# 13 language features on
net48/netstandardtargets. ❤️ @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% |
Links
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.
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.
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.