{"id":3936,"date":"2026-04-28T17:18:27","date_gmt":"2026-04-28T17:18:27","guid":{"rendered":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2026\/04\/28\/welcome-to-skiasharp-4-0-preview-1\/"},"modified":"2026-04-28T17:18:27","modified_gmt":"2026-04-28T17:18:27","slug":"welcome-to-skiasharp-4-0-preview-1","status":"publish","type":"post","link":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/2026\/04\/28\/welcome-to-skiasharp-4-0-preview-1\/","title":{"rendered":"Welcome to SkiaSharp 4.0 Preview 1"},"content":{"rendered":"<p>Created 10 years ago, <a href=\"https:\/\/github.com\/mono\/SkiaSharp\">SkiaSharp<\/a> has long been the backbone of cross-platform 2D graphics in .NET. It powers graphics rendering across mobile, desktop, web, and server targets with consistent, high-quality output using the <a href=\"https:\/\/github.com\/google\/skia\">open-source Skia engine<\/a>. SkiaSharp gives .NET developers the tools to draw text, geometries, and images with pixel-perfect fidelity wherever their apps run. SkiaSharp\u2019s cross-platform bindings are important to Microsoft for various .NET platforms like .NET MAUI, as well as rendering consistent UI on key technologies like WebAssembly and WinUI 3. Its continued evolution and long-term maintenance are strategically important to the broader .NET ecosystem.<\/p>\n<p><strong>Today, we\u2019re announcing a major milestone for SkiaSharp. <a href=\"https:\/\/aka.ms\/skiasharp-40-package\">SkiaSharp 4.0 Preview 1<\/a> is here.<\/strong> Our goal is to align SkiaSharp with updates and features that come with a new Skia engine and more modern API. Over two years worth of Skia updates are coming to SkiaSharp with this release. Thank you to all contributors that made this release happen.<\/p>\n\n<div class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/aka.ms\/skiasharp-40-package\" target=\"_blank\">Get SkiaSharp 4.0 Preview 1<\/a><\/div>\n<p>Please try out the preview and give us feedback by filing an issue on our repository <a href=\"https:\/\/github.com\/mono\/SkiaSharp\">github.com\/mono\/SkiaSharp<\/a>.<\/p>\n<p>We\u2019re also excited to see <a href=\"https:\/\/platform.uno\/\">Uno Platform<\/a> step up into a co-maintainer role with us on SkiaSharp. Uno Platform <a href=\"https:\/\/platform.uno\/blog\/Announcing-UnoPlatform-Microsoft-dotnet-collaboration\/\">has been collaborating with us<\/a> on .NET, bringing in the latest Android bindings, contributing to AOT, Wasm, and more. They will co-maintain SkiaSharp alongside the .NET team going forward, helping keep cross-platform graphics rendering accessible to all .NET developers in a timely way.<\/p>\n<p>We\u2019ll celebrate this collaboration and SkiaSharp 4.0 release on June 30 together at <a href=\"https:\/\/platform.uno\/skiasharp\">Uno Platform\u2019s Focus on SkiaSharp online event<\/a>. Save the date!<\/p>\n<h2>What\u2019s New in SkiaSharp 4.0 Preview 1<\/h2>\n<p>SkiaSharp 4.0 is a major upgrade. Under the hood, the Skia graphics engine has been updated with years of upstream improvements including rendering quality, codec, and performance gains that benefit every SkiaSharp app automatically, without any code changes required.<\/p>\n<p>Here\u2019s what\u2019s available in the first preview:<\/p>\n<p><!-- SECTION: A Better Engine Sources: Skia bumps PRs #3560 (m132), #3660 (m133), #3702 (m147) Engine bullets: m131 mipmap, m123 Exif, m125 tiling, m142 color accuracy, m124 noise perf Security: PRs #3397 (CFG), #3404 (\/GS), #3496 #3502 (Spectre), #3718 #3717 #3478 #3469 (dep bumps) --><\/p>\n<h3>A Better Engine<\/h3>\n<p>SkiaSharp 4.0 ships with Skia milestone 147 \u2013 two and a half years and 28 milestones of upstream rendering, quality, and security improvements that benefit your apps automatically:<\/p>\n<p><!-- Source: Skia m131 release notes - GrContextOptions::fSharpenMipmappedTextures restored and enabled by default --><\/p>\n<ul>\n<li><strong>Sharper downscaled images<\/strong> \u2013 mipmap sharpening is now on by default.<br \/>\n<!-- Source: Skia m123 release notes - SkCodec::getImage() will now respect the origin in the metadata --><\/li>\n<li><strong>Automatic photo orientation<\/strong> \u2013 image codecs now respect Exif rotation metadata.<br \/>\n<!-- Source: Skia m125 release notes - SkTiledImageUtils namespace with DrawImage and DrawImageRect --><\/li>\n<li><strong>Improved large image handling<\/strong> \u2013 oversized bitmaps automatically tile to fit GPU texture limits.<br \/>\n<!-- Source: Skia m142 release notes - kRec709 corrected to BT.1886. Skia m141 - kHLG\/kPQ use new skcms representations. Automatic, no API change needed. --><\/li>\n<li><strong>More accurate colors<\/strong> \u2013 transfer functions for Rec.709, HLG, and PQ corrected to match industry standards.<br \/>\n<!-- Source: Skia m124 release notes - Perlin noise significantly improved on raster --><\/li>\n<li><strong>Incremental performance gains<\/strong> \u2013 rendering operations across the board are modestly faster, with specific improvements to noise shaders and canvas operations.<br \/>\n<!-- Source: PRs #3397, #3404, #3496, #3502, #3718, #3717, #3478, #3469 --><\/li>\n<li><strong>Security hardened<\/strong> \u2013 modern compiler mitigations enabled across all platforms, and all bundled native dependencies updated with security fixes.<\/li>\n<\/ul>\n<p><!-- SECTION: New Capabilities Sources: PRs #3703 (variable fonts), #3742 (color palettes), #3702 (SKPathBuilder), #3730 (typeface resolution), #3217 (Linux Bionic), #3620 (Tizen) --><\/p>\n<h3>New Capabilities<\/h3>\n<p>Here\u2019s what\u2019s new in Preview 1, with more on the way in upcoming previews:<\/p>\n<p><!-- Source: PR #3703 - Add variable font support to SkiaSharp and HarfBuzzSharp --><\/p>\n<ul>\n<li><strong>Variable fonts<\/strong> \u2013 full OpenType variable font axis control across SkiaSharp and HarfBuzz. Query axes, set positions, and create typeface variants for weight, width, slant, or custom axes.<br \/>\n<!-- Source: PR #3742 - Add color font palette support and improve variable font robustness --><\/li>\n<li><strong>Color font palettes<\/strong> \u2013 switch between OpenType CPAL palettes for emoji and icon fonts, or override individual glyph colors.<br \/>\n<!-- Source: PR #3702 - Bump skia to milestone 147; SKPathBuilder added --><\/li>\n<li><strong>SKPathBuilder<\/strong> \u2013 the modern way to construct paths. <code>SKPath<\/code> is now immutable under the hood, with <code>SKPathBuilder<\/code> providing the familiar <code>MoveTo<\/code>\/<code>LineTo<\/code>\/<code>CubicTo<\/code> API plus shape factories. Existing <code>SKPath<\/code> methods remain available for backward compatibility.<br \/>\n<!-- Source: PRs #3217 (Linux Bionic), #3620 (Tizen x64\/arm64) --><\/li>\n<li><strong>Linux Bionic and Tizen 64-bit<\/strong> \u2013 new native build targets for Android-based Linux systems and Samsung Tizen x64\/arm64 devices.<\/li>\n<\/ul>\n<h3>Read the Release Notes, Try out the Preview<\/h3>\n<p>Read the full release notes for all the details: <a href=\"https:\/\/aka.ms\/skiasharp-40-notes\">SkiaSharp 4.0 Preview 1 Release Notes<\/a>.<\/p>\n<p><strong><a href=\"https:\/\/aka.ms\/skiasharp-40-package\">Try SkiaSharp 4.0 Preview 1<\/a> and tell us what you think.<\/strong> Whether you\u2019re building data visualization tools, custom UI, game surfaces, or anything in between, please try the preview releases, contribute, and give us feedback at <a href=\"https:\/\/github.com\/mono\/SkiaSharp\">github.com\/mono\/SkiaSharp<\/a> to help us on our journey to a solid SkiaSharp 4.0 release.<\/p>\n<h2>SkiaSharp 4.0 Roadmap &amp; Interactive Gallery<\/h2>\n<p>We plan on releasing SkiaSharp 4.0 previews often as we move toward release candidate to final release this summer. This will give commercial vendors, partner teams, and the community time to evaluate and give us feedback.<\/p>\n<p>You can see our roadmap and the work we have ahead here: <a href=\"https:\/\/github.com\/mono\/SkiaSharp\/issues\/3684\">SkiaSharp v4 Release Tracking<\/a>.<\/p>\n<p>A new website and interactive gallery is also in the works to help you get started and showcase what you can do with SkiaSharp. We\u2019re building it as a Blazor WebAssembly app with live, interactive demos, from shader playgrounds and path effects to variable fonts and image filters. Check out the early preview at <a href=\"https:\/\/mono.github.io\/SkiaSharp\/\">mono.github.io\/SkiaSharp<\/a>.<\/p>\n<p><a href=\"https:\/\/mono.github.io\/SkiaSharp\/\"><img data-opt-id=693363501  fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2026\/04\/gallery-home.webp\" alt=\"Visual of the interactive gallery page\" \/><\/a><\/p>\n<p>There\u2019s also a live SkiaSharp playground, <a href=\"https:\/\/mono.github.io\/SkiaSharp\/fiddle\">SkiaFiddle powered by Uno Platform<\/a>, that you can use to test out your SkiaSharp code interactively.<\/p>\n<p><a href=\"https:\/\/mono.github.io\/SkiaSharp\/fiddle\"><img data-opt-id=1596102015  fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2026\/04\/gallery-uno.webp\" alt=\"Interactive SkiaSharp playground\" \/><\/a><\/p>\n<h2>A New Partner: Uno Platform Joins as Co-Maintainer<\/h2>\n<p>SkiaSharp is important to Uno Platform. They have built their cross-platform rendering pipeline on SkiaSharp, making them one of the most active and invested stakeholders in the project\u2019s health. <strong>Uno Platform will co-maintain SkiaSharp<\/strong> in partnership with the .NET team at Microsoft. This will move SkiaSharp forward at a more rapid pace, with a healthy SkiaSharp-loving community invited to engage and contribute. Read all about <a href=\"https:\/\/aka.platform.uno\/skiaannouncement\">Uno Platform\u2019s commitment to SkiaSharp on their blog<\/a>.<\/p>\n<p>Uno Platform engineers have already made significant contributions to SkiaSharp 4.0:<\/p>\n<ul>\n<li><strong>Skia engine bumps<\/strong> (<a href=\"https:\/\/github.com\/mono\/SkiaSharp\/pull\/3560\">#3560<\/a>, <a href=\"https:\/\/github.com\/mono\/SkiaSharp\/pull\/3702\">#3702<\/a>) \u2013 Major engine upgrades bringing SkiaSharp up to the latest Skia.<\/li>\n<li><strong>Variable font support<\/strong> (<a href=\"https:\/\/github.com\/mono\/SkiaSharp\/pull\/3703\">#3703<\/a>) \u2013 Full variable font API for SkiaSharp and HarfBuzzSharp.<\/li>\n<li><strong>Android typeface crash fix<\/strong> (<a href=\"https:\/\/github.com\/mono\/SkiaSharp\/pull\/3730\">#3730<\/a>) \u2013 The critical Android API 36 startup fix.<\/li>\n<li><strong>Cross-platform generator tooling<\/strong> (<a href=\"https:\/\/github.com\/mono\/SkiaSharp\/pull\/3714\">#3714<\/a>) \u2013 Made the binding generator work on Linux, enabling broader contributor access.<\/li>\n<li><strong>Uno Platform WebAssembly gallery<\/strong> (<a href=\"https:\/\/github.com\/mono\/SkiaSharp\/pull\/3758\">#3758<\/a>) \u2013 An interactive gallery showcasing SkiaSharp via Uno Platform\u2019s WebAssembly renderer.<\/li>\n<\/ul>\n<p>Formalizing that relationship as co-maintainers means:<\/p>\n<ul>\n<li><strong>Better stability<\/strong> \u2013 more eyes on the codebase, faster triage, and higher confidence in releases<\/li>\n<li><strong>Improved update cadence<\/strong> \u2013 contributions from teams actively shipping SkiaSharp-dependent products<\/li>\n<li><strong>Lower barrier to contribute<\/strong> \u2013 streamlined processes make it easier for the broader .NET community to participate<\/li>\n<\/ul>\n<p>For .NET developers who depend on SkiaSharp in production, this is good news: the library now has multi-organizational momentum behind it that matches its importance to the ecosystem.<\/p>\n<h2>Join the Celebration: SkiaSharp Live Event<\/h2>\n<p>To mark this release, Uno Platform is hosting a live event with .NET team members dedicated entirely to all things SkiaSharp.<\/p>\n<p><strong><img data-opt-id=1909021845  data-opt-src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4c5.png\"  decoding=\"async\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" alt=\"\ud83d\udcc5\" class=\"wp-smiley\" \/> Date:<\/strong> June 30th, 11am \u2013 3pm ET<\/p>\n<p><strong><img data-opt-id=1399897509  data-opt-src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f4fa.png\"  decoding=\"async\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" alt=\"\ud83d\udcfa\" class=\"wp-smiley\" \/> Where to Watch:<\/strong><\/p>\n<ul>\n<li>Uno Platform channels on YouTube, X (Twitter), and LinkedIn<\/li>\n<li>.NET Foundation YouTube<\/li>\n<\/ul>\n<p><strong><img data-opt-id=870356230  data-opt-src=\"https:\/\/s.w.org\/images\/core\/emoji\/17.0.2\/72x72\/1f517.png\"  decoding=\"async\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20100%%20100%%22%20width%3D%22100%%22%20height%3D%22100%%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" alt=\"\ud83d\udd17\" class=\"wp-smiley\" \/> Event details:<\/strong> <a href=\"https:\/\/platform.uno\/skiasharp\">platform.uno\/skiasharp<\/a><\/p>\n<p>Come for the demos, stay for the deep dives! The event will cover what\u2019s new in 4.0, what the new co-maintenance model means in practice, and what\u2019s ahead for SkiaSharp in the .NET ecosystem.<\/p>\n<p>We encourage you to <a href=\"https:\/\/aka.ms\/skiasharp-40-package\">try out the preview<\/a> and give us feedback by filing an issue on our repository <a href=\"https:\/\/github.com\/mono\/SkiaSharp\">github.com\/mono\/SkiaSharp<\/a>.<\/p>\n<p>Have fun and happy SkiaSharp-ing!<\/p>\n<p>The post <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/welcome-to-skia-sharp-40-preview1\/\">Welcome to SkiaSharp 4.0 Preview 1<\/a> appeared first on <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\">.NET Blog<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Created 10 years ago, SkiaSharp has long been the backbone of cross-platform 2D graphics in .NET. It powers graphics rendering [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3937,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[7],"tags":[],"class_list":["post-3936","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet"],"_links":{"self":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/3936","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/comments?post=3936"}],"version-history":[{"count":0,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/posts\/3936\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media\/3937"}],"wp:attachment":[{"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/media?parent=3936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/categories?post=3936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rssfeedtelegrambot.bnaya.co.il\/index.php\/wp-json\/wp\/v2\/tags?post=3936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}