精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

.NET Core使用SkiaSharp快速生成二維碼( 真正跨平臺方案)

開發 前端
在非 Windows 環境中,推薦使用 SkiaSharp 和 ImageSharp 等庫來完成跨平臺的圖像處理操作。這些庫提供了更全面和穩定的功能支持,適用于大多數圖形操作需求。而 System.Drawing.Common 將主要繼續在 Windows 窗體和 GDI+ 的上下文中進行演化。

前言

在.NET 6之前我們一直是使用QRCoder來生成二維碼(QRCoder是一個非常強大的生成二維碼的組件,用到了System.Drawing.Common 包),然后從.NET 6開始,當為非 Windows 操作系統編譯引用代碼時,平臺分析器會發出編譯時警告。異常如下:

System.TypeInitializationException : The type initializer for 'Gdip' threw an exception.
      ---- System.PlatformNotSupportedException : System.Drawing.Common is not supported on non-Windows platforms. See https://aka.ms/systemdrawingnonwindows for more information.
      Stack Trace:
           at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromFile(String filename, IntPtr& bitmap)
        /_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(42,0): at System.Drawing.Bitmap..ctor(String filename, Boolean useIcm)
        /_/src/libraries/System.Drawing.Common/src/System/Drawing/Bitmap.cs(25,0): at System.Drawing.Bitmap..ctor(String filename)
        /_/src/libraries/System.Resources.ResourceManager/tests/ResourceManagerTests.cs(270,0): at System.Resources.Tests.ResourceManagerTests.EnglishImageResourceData()+MoveNext()
        /_/src/libraries/System.Linq/src/System/Linq/Select.cs(136,0): at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
        ----- Inner Stack Trace -----
        /_/src/libraries/System.Drawing.Common/src/System/Drawing/LibraryResolver.cs(31,0): at System.Drawing.LibraryResolver.EnsureRegistered()
        /_/src/libraries/System.Drawing.Common/src/System/Drawing/GdiplusNative.Unix.cs(65,0): at System.Drawing.SafeNativeMethods.Gdip.PlatformInitialize()
        /_/src/libraries/System.Drawing.Common/src/System/Drawing/Gdiplus.cs(27,0): at System.Drawing.SafeNativeMethods.Gdip..cctor()

報錯原因

由于 System.Drawing.Common 被設計為 Windows 技術的精簡包裝器,因此其跨平臺實現欠佳。

libgdiplus 是本機端 System.Drawing.Common 跨平臺實現的主要提供程序。libgdiplus 實際上是對 System.Drawing.Common 所依賴的 Windows 部分的重新實現。該實現使 libgdiplus 成為一個重要的組件。它大約有 30,000 行 C 代碼,大部分未經測試,而且缺少很多功能。libgdiplus 還具有許多用于圖像處理和文本呈現的外部依賴項,例如 cairo、pango 和其他本機庫。這些依賴項使得維護和交付組件更具挑戰性。自從包含 Mono 跨平臺實現以來,我們已將許多從未得到修復的問題重定向到 libgdiplus。相比之下,我們采用的其他外部依賴項,例如 icu 或 openssl,都是高質量的庫。使 libgdiplus 的功能集和質量與 .NET 堆棧的其余部分相媲美是不可行的。

官方建議

在非 Windows 環境中,推薦使用 SkiaSharp 和 ImageSharp 等庫來完成跨平臺的圖像處理操作。這些庫提供了更全面和穩定的功能支持,適用于大多數圖形操作需求。而 System.Drawing.Common 將主要繼續在 Windows 窗體和 GDI+ 的上下文中進行演化。

SkiaSharp介紹

SkiaSharp是由Mono團隊維護的開源項目,它是基于Google的Skia圖形庫的.NET跨平臺綁定,提供了強大的2D圖形繪制和處理功能,適用于多個平臺,包括Windows、macOS、Linux、iOS和Android,可用于創建高性能的、可移植的2D圖形應用程序。

SkiaSharp 提供了跨平臺綁定,適用于以下平臺:

  • .NET Standard 1.3
  • .NET Core
  • .NET 6
  • Tizen
  • Android
  • iOS
  • tvOS
  • macOS
  • Mac Catalyst
  • WinUI 3 (Windows App SDK / Uno Platform)
  • Windows Classic Desktop (Windows.Forms / WPF)
  • Web Assembly (WASM)
  • Uno Platform (iOS / macOS / Android / WebAssembly)

這些平臺可以使用 SkiaSharp 來進行跨平臺的圖形渲染和繪制操作。

使用SkiaSharp快速生成二維碼

1、安裝SkiaSharp.QrCode庫

使用SkiaSharp生成二維碼的QR碼生成器(無需使用System.Drawing)。

圖片圖片

2、生成二維碼圖片

/// <summary>
        /// 生成二維碼圖片
        /// </summary>
        public static void GenerateQRCode()
        {
            var qrCodeContent = "追逐時光者";
            using (var generator = new QRCodeGenerator())
            {
                // 創建二維碼(并設置糾錯能力最高級)
                var createQrCode = generator.CreateQrCode(qrCodeContent, ECCLevel.H);

                var skImageInfo = new SKImageInfo(300, 300);

                // 創建SkiaSharp畫布
                using (var surface = SKSurface.Create(skImageInfo))
                {
                    var canvas = surface.Canvas;

                    // 渲染二維碼到畫布
                    canvas.Render(createQrCode, skImageInfo.Width, skImageInfo.Height);

                    using (var image = surface.Snapshot())// 獲取畫布快照
                    using (var data = image.Encode(SKEncodedImageFormat.Png, 100))// 編碼畫布快照為PNG格式的數據
                    using (var stream = File.OpenWrite(@"MyQRCode.png"))
                    {
                        data.SaveTo(stream);// 將數據保存到文件流中,生成二維碼圖片
                    }
                }
            }
        }

二維碼的糾錯能力通常分為四個級別

  • 在生成二維碼時,糾錯能力(Error Correction Capability)指的是QR碼中包含的冗余信息,用于修復可能出現的損壞或錯誤。QR碼可以通過添加冗余信息來提高其容錯性,即使在一定程度上受到損壞或噪聲的干擾,仍然可以正確地解碼和還原二維碼的內容。
  • QR碼的糾錯能力通常分為四個級別,從低到高依次為:L、M、Q、H。其中,糾錯能力最低的級別為L,最高的級別為H。糾錯能力越高,二維碼中包含的冗余信息就越多,因此可以更好地恢復丟失或損壞的數據。
namespace SkiaSharp.QrCode
{
    public enum ECCLevel
    {
        L,
        M,
        Q,
        H
    }
}

3、查看生成效果

圖片圖片

參考文章

  • https://learn.microsoft.com/zh-cn/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only
  • QRCoder:https://github.com/codebude/QRCoder
責任編輯:武曉燕 來源: 追逐時光者
相關推薦

2023-11-17 09:07:51

.NET生成二維碼識別二維碼

2015-09-24 09:56:19

.NET二維碼

2024-06-26 08:46:45

2023-11-17 15:44:06

C++庫生成二維碼

2013-01-30 12:16:49

二維碼NFC近場通訊

2013-10-29 09:46:05

二維碼

2013-03-27 16:13:17

Android開發Android二維碼生QR生成

2023-10-31 08:16:16

Go語言二維碼

2022-08-28 19:10:37

JavaScript二維碼源碼

2020-08-07 14:18:03

二維碼Go語言編程

2015-11-09 13:03:47

JavaServlet創建二維碼

2021-02-08 08:40:00

Zint二維碼開源

2014-12-31 15:37:16

二維碼生成掃描

2017-02-21 09:17:46

二維碼漏洞

2011-12-06 16:40:45

二維碼快拍二維碼靈動快拍

2024-09-18 06:00:00

ZXing.NET二維碼

2017-11-21 09:00:15

PHP二維碼LOGO圖像

2015-01-14 09:46:52

Google API

2011-07-26 14:07:29

iPhone 二維碼

2011-12-30 17:09:41

二維碼APP靈動快拍
點贊
收藏

51CTO技術棧公眾號

亚洲日本精品一区| 超薄丝袜一区二区| 大陆极品少妇内射aaaaa| 天天操天天操天天| 视频一区二区三区中文字幕| 中文字幕免费国产精品| 国产一级片中文字幕| a天堂资源在线| 国产欧美综合在线观看第十页| 国产精品美乳在线观看| 午夜少妇久久久久久久久| 婷婷精品在线| 欧美久久婷婷综合色| 国产手机免费视频| 性开放的欧美大片| 91亚洲国产成人精品一区二区三 | 欧美日韩在线一二三| 亚洲一卡二卡在线| 一区二区三区国产盗摄| www.亚洲人.com| 欧美bbbbb性bbbbb视频| 动漫一区二区三区| 色婷婷久久久久swag精品| 久久久久福利视频| 川上优的av在线一区二区| 成人妖精视频yjsp地址| 国产在线视频一区| 69国产精品视频免费观看| 午夜久久免费观看| 国产一区二区黄| 欧美激情一区二区三区p站| 超薄肉色丝袜脚交一区二区| 亚洲香蕉伊在人在线观| 伊人久久99| 成人高清免费观看mv| 99久精品国产| 成人三级在线| 国产三级小视频| 蜜桃精品在线观看| 日韩av成人在线| 欧美亚韩一区二区三区| 一区二区三区四区电影| 中文字幕少妇一区二区三区| 人妻精品久久久久中文字幕| 国产精品男女| 精品国产sm最大网站免费看| 青娱乐精品在线| 亚洲综合伊人| 欧美日韩mp4| 免费一区二区三区在线观看| 国产综合色区在线观看| 狠狠色狠狠色综合日日小说| 91九色丨porny丨国产jk| 国产探花视频在线观看| 亚洲一区二区三区免费视频| 成人免费看片视频在线观看| 成人三级网址| 亚洲精品久久7777| 男人的天堂avav| 婷婷在线播放| 亚洲在线免费播放| 亚洲熟妇无码一区二区三区导航| 激情影院在线| 亚洲国产精品久久人人爱| 欧美亚洲色图视频| 538在线视频| 精品国产999| 欧美日韩在线看| 美女网站色91| 在线看福利67194| 精品亚洲aⅴ无码一区二区三区| 色综合久久中文| 国产午夜精品理论片a级探花| 少妇精品无码一区二区三区| 国产厕拍一区| 日韩精品有码在线观看| 亚洲永久精品ww.7491进入| 精品一区毛片| 在线国产精品播放| 久久国产波多野结衣| 欧美日韩三级电影在线| 97婷婷大伊香蕉精品视频| 9i看片成人免费看片| 免费成人在线观看| 99久热re在线精品视频| 四虎精品成人影院观看地址| 日本一区二区免费在线| 亚洲综合欧美日韩| 午夜av在线播放| 亚洲欧美二区三区| 久久综合色婷婷| 2020欧美日韩在线视频| 亚洲 日本 欧美 中文幕| 美女精品自拍一二三四| 亚洲专区国产精品| 午夜激情小视频| 国产精品色噜噜| 一二三四中文字幕| 亚洲欧美小说色综合小说一区| 欧美在线播放高清精品| 亚洲AV无码久久精品国产一区| 欧美激情极品| 精品国产区一区二区三区在线观看| 免费在线视频一区二区| 久久亚洲风情| 国产精品久久亚洲7777| jizz日韩| 精品久久久一区| 91看片破解版| 精品一区欧美| 久久久亚洲精选| 国产精品久久久久久久免费看| www.亚洲激情.com| 精品少妇人妻av一区二区| 久久久久成人片免费观看蜜芽| 中日韩视频在线观看| 国产欧美一区二区三区四区| 三级在线观看网站| 亚洲三级电影全部在线观看高清| 波多野结衣乳巨码无在线| 9999精品视频| 一区二区三区视频观看| 国产精品99精品| 精品在线免费视频| 日本高清视频一区二区三区| 青草在线视频在线观看| 欧美日韩日本视频| 三上悠亚ssⅰn939无码播放| 欧美精品一线| 成人精品一区二区三区电影黑人| 青春有你2免费观看完整版在线播放高清| 亚洲欧美另类综合偷拍| 黄色免费网址大全| 九九精品久久| 欧美在线影院在线视频| 神马午夜一区二区| 亚洲午夜一区二区三区| 超碰91在线播放| 97精品国产福利一区二区三区| 国产成人精品久久二区二区91| 亚洲黄色精品视频| 一区二区三区四区不卡在线| 一二三级黄色片| 久久国产精品亚洲人一区二区三区| 日本视频久久久| 午夜黄色小视频| 欧美日韩在线视频一区二区| 中文字幕天堂网| 亚洲三级国产| 精品国产一区二区三区四区vr| 福利写真视频网站在线| 欧美精品一区二区不卡| 久久久91视频| 成熟亚洲日本毛茸茸凸凹| 九九久久九九久久| 91在线一区| 午夜免费在线观看精品视频| 五月婷婷开心中文字幕| 精品国产精品三级精品av网址| 成人在线视频免费播放| 亚洲精品人人| 欧美国产一二三区| 偷拍精品精品一区二区三区| 国产亚洲精品91在线| 久久久久精彩视频| 国产精品久久久99| 一级黄色高清视频| 欧美喷水视频| 精品国产aⅴ麻豆| 欧美成人a交片免费看| 国产亚洲精品久久久| 亚洲一区在线观| 一区二区视频在线看| 中文字幕在线播放一区| 久久久久久一区二区| 日本欧美色综合网站免费| 四虎视频在线精品免费网址| 欧美另类高清videos| 黄色www视频| 欧美性生活大片免费观看网址| 色欲av无码一区二区三区| 另类小说综合欧美亚洲| 无码人妻精品一区二区蜜桃百度| 红杏视频成人| 国产精品99久久久久久久久| 超碰免费公开在线| 精品国产一区久久| 欧产日产国产69| 国产精品传媒入口麻豆| 蜜臀视频在线观看| 久久一综合视频| 日韩不卡一二区| 日韩大片在线免费观看| 国产日韩精品在线观看| 中出视频在线观看| 成人免费在线播放| 91免费在线观看网站| 伊人久久av| 久久精品国产亚洲一区二区| 日本精品一二区| 精品视频一区二区不卡| 精品视频久久久久| 中文字幕不卡的av| 国产大尺度视频| 蜜臀av性久久久久蜜臀aⅴ流畅| a级片一区二区| 精品国产一区一区二区三亚瑟| 91色中文字幕| 欧美日韩国产网站| 久久免费在线观看| 蜜桃视频在线观看免费视频网站www| 亚洲国产美女久久久久| 97人妻一区二区精品免费视频| 精品人伦一区二区三区蜜桃免费| 中文字幕美女视频| 久久久国产综合精品女国产盗摄| 五月天六月丁香| 免费视频最近日韩| www.四虎成人| 亚洲日本成人| 超碰超碰超碰超碰超碰| 99成人在线视频| 日本一区二区三区视频在线播放| 国产精品nxnn| 亚洲一区中文字幕在线观看| av成人免费| 国产成人aa精品一区在线播放| 波多野结衣在线高清| 久久人人爽亚洲精品天堂| 女人天堂在线| 日韩精品极品在线观看播放免费视频 | 亚洲男人在线| 日韩av毛片网| 国产夫妻在线| 久久久久亚洲精品| 日本中文字幕中出在线| 精品国产一区二区三区四区在线观看 | 日韩成人毛片视频| 国产精品丝袜久久久久久app| 国产精品815.cc红桃| 成人av网站大全| 韩国三级丰满少妇高潮| 极品销魂美女一区二区三区| 狠狠躁狠狠躁视频专区| 日韩精品91亚洲二区在线观看| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 日本在线一区二区| 国产精品久久久久9999| 大胆人体一区二区| 人人爽久久涩噜噜噜网站| 色吧亚洲日本| 欧美在线视频免费观看| 亚洲欧美韩国| 国产成人精品视频在线| 久久夜夜操妹子| 国产精品久久久精品| 懂色aⅴ精品一区二区三区| 国产精品久久久久久久9999| 成人a在线观看高清电影| 国产精品视频永久免费播放| 色999韩欧美国产综合俺来也| 国产日产亚洲精品| 精品一区二区三区中文字幕| 91av免费看| 欧美xxxx在线| 日韩av电影免费在线| 欧美aaaa视频| 欧美日韩激情四射| 亚洲激情网址| 国产女女做受ⅹxx高潮| 美国欧美日韩国产在线播放| 亚洲无在线观看| 久久午夜电影| 亚洲国产人成综合网站| 国产亚洲精品一区二555| 欧美精品亚洲精品| 农村老熟妇乱子伦视频| 黄色网址视频在线观看| 国产精品chinese| 色88888久久久久久影院按摩| 国产精品美女免费看| 91福利免费观看| 无码久久精品国产亚洲av影片| 欧美 日韩 国产 一区| 免费观看中文字幕| 亚洲欧洲日本mm| 久久久久久久久久久久久国产精品| 日本最新不卡在线| 久久人人爽人人片| 99精品桃花视频在线观看| 少妇精品无码一区二区免费视频| 亚洲欧美怡红院| 色播视频在线播放| 欧美日韩另类一区| 好吊色在线观看| 在线看日韩欧美| 草美女在线观看| 国产精品久久久久久久美男| 国产精品**亚洲精品| 精品国产aⅴ麻豆| 国产精品不卡| 男人操女人免费软件| 久久激情五月婷婷| 手机在线看片日韩| 中文字幕视频一区| 中文字幕高清在线免费播放| 91精品久久久久久久99蜜桃| 欧美美女搞黄| 欧美极品少妇xxxxⅹ裸体艺术| 成人日韩精品| 国产视频一区二区不卡| 99热国内精品| 国产v亚洲v天堂无码久久久| 成人福利视频网站| 午夜剧场免费在线观看| 欧美性生交xxxxxdddd| 成 人 黄 色 片 在线播放| 在线观看久久av| 色在线中文字幕| 亚洲xxxx视频| 人人狠狠综合久久亚洲婷| 精品中文字幕av| 国产91精品一区二区| 成年人免费视频播放| 色婷婷精品久久二区二区蜜臂av| www.黄色一片| 日韩三级成人av网| 日韩欧美2区| 欧洲精品久久| 在线视频日韩| 成年人小视频在线观看| 亚洲精品免费电影| 国产孕妇孕交大片孕| 这里只有精品视频| 性欧美videohd高精| 久久综合九色欧美狠狠| 9国产精品视频| 亚洲精品无码一区二区| 亚洲精品视频一区| 99热这里只有精品1| 久久精品电影网| 亚洲在线资源| 一道本在线观看视频| 极品尤物av久久免费看| 国产午夜精品理论片| 欧美日韩电影在线| 日本在线观看视频| 成人做爰www免费看视频网站| 97精品国产| av在线免费看片| 亚洲三级免费电影| 精品国产av一区二区三区| 欧美日韩国产二区| 91精品导航| 国产精品裸体瑜伽视频| 99久久免费视频.com| 成人免费视频毛片| 亚洲欧美日韩国产成人| 91成人在线| 一区二区精品国产| 国精产品一区一区三区mba桃花 | 91精品亚洲一区在线观看| 亚洲自拍三区| 国产成人精品网址| 日韩精品在线不卡| 亚洲日韩欧美视频一区| 国产精品无码久久久久| 在线视频福利一区| 懂色av一区二区夜夜嗨| 1级黄色大片儿| 亚洲女同精品视频| 日韩成人一区| 久久综合久久久久| 久久影院午夜论| 一区精品在线观看| 久久亚洲欧美日韩精品专区| 91大神精品| 丁香婷婷激情网| 亚洲欧美另类久久久精品| 黄频网站在线观看| 国产成人精品久久二区二区91| 日韩www.| 亚洲精品成人无码毛片| 岛国av在线不卡| 日本天堂在线观看| 国产精品久久久久av福利动漫| 国产免费成人| 久久99久久99精品免费看小说| 欧美xingq一区二区| 澳门成人av网| 经典三级在线视频| 91麻豆免费视频| 国产精品丝袜黑色高跟鞋| 97视频在线观看播放| 国产精品久久久久久久久久10秀| 一级少妇精品久久久久久久| 欧美在线一二三四区| 7777kkk亚洲综合欧美网站| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 国产精品123|