精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

成人短视频在线| 无码任你躁久久久久久久| 久久gogo国模啪啪裸体| 亚洲色图丝袜美腿| 91麻豆精品秘密入口| 国产无遮挡又黄又爽在线观看| 丝袜久久网站| 欧美精品免费视频| 99精品在线免费视频| 日本成人网址| 91在线国内视频| 成人高h视频在线| 日韩精品久久久久久久| 四虎成人av| 日韩成人久久久| 久久久久久久高清| 欧美伦理91| 一区二区在线观看视频 | 国产熟女一区二区三区五月婷 | 欧美激情二区三区| 天天躁夜夜躁狠狠是什么心态| 欧美一区一区| 欧美日本在线播放| 18禁男女爽爽爽午夜网站免费| 国内外激情在线| www.日本不卡| 亚洲在线免费看| 中国女人真人一级毛片| 亚洲美女一区| 欧美国产中文字幕| 91香蕉国产视频| 国产99精品一区| 亚洲激情自拍图| 在线播放国产视频| 国产精品久一| 欧美男女性生活在线直播观看| 国产成人无码一二三区视频| 97蜜桃久久| 伊人色综合久久天天人手人婷| 亚洲精品一区二区三区四区五区| 亚洲av成人精品一区二区三区在线播放 | 欧美成人h版在线观看| 快灬快灬一下爽蜜桃在线观看| 亚洲丁香日韩| 日韩精品极品视频| 女同性恋一区二区三区| 嗯用力啊快一点好舒服小柔久久| 91精品国产91久久综合桃花| 高潮一区二区三区| 久久亚洲精品人成综合网| 欧美亚洲愉拍一区二区| 日本精品久久久久中文字幕| 成人教育av| 日韩欧美在线免费| 国产成人精品无码播放| 欧美电影免费观看高清完整| 在线一区二区三区四区五区 | 成人美女视频| 色欧美日韩亚洲| 91国产精品视频在线观看| 午夜激情成人网| 欧美私模裸体表演在线观看| 小泽玛利亚视频在线观看| 狠狠久久伊人中文字幕| 欧美日韩高清影院| 欧美激情精品在线| 无码免费一区二区三区免费播放 | 成人h版在线观看| 粉嫩av免费一区二区三区| 丰满熟妇人妻中文字幕| 成人91在线观看| 欧美视频小说| 1区2区3区在线观看| 中文字幕亚洲一区二区av在线| 一区二区三区电影| 91麻豆一二三四在线| 亚洲午夜久久久久| 国产裸体舞一区二区三区| 日韩制服诱惑| 91精品国产日韩91久久久久久| 18禁一区二区三区| 天堂99x99es久久精品免费| 亚洲午夜精品久久久久久性色 | 亚洲大胆在线| 日韩av电影在线网| 97视频免费在线| 成人福利视频在线| 日韩欧美精品久久| 污的网站在线观看| 欧美日韩亚洲天堂| 日本在线观看a| 99国内精品久久久久| 亚洲成人999| 欧美成人另类视频| 黄色亚洲精品| 国产精品麻豆va在线播放| 国产乱码久久久| 91麻豆.com| eeuss中文| 在线观看福利电影| 91精品国产综合久久小美女| 97人妻精品一区二区三区免| 91精品一区二区三区综合在线爱| 97视频在线播放| 国产乱淫a∨片免费视频| 国产第一亚洲| 91在线视频播放| 亚洲一区二区三区涩| xxx性欧美| 欧美精品久久一区| mm131美女视频| 欧美午夜久久| 国产日韩在线观看av| 色就是色亚洲色图| 亚洲精品成人a在线观看| 日本免费观看网站| 另类在线视频| 欧美日韩ab片| av中文字幕在线免费观看| 久久精品一区二区三区av| 日本阿v视频在线观看| www.欧美| 最近2019年手机中文字幕| 国产a∨精品一区二区三区仙踪林| 国内精品伊人久久久久影院对白| 日韩高清av| 日本免费一区二区六区| 欧美成人激情免费网| 久久久久久久麻豆| 蜜桃一区二区三区在线| 欧洲视频一区二区三区| 黄毛片在线观看| 精品国精品自拍自在线| 午夜精品一区二区三级视频| 蜜臀精品一区二区三区在线观看| 久久青青草综合| 国产粉嫩在线观看| 亚洲第一色在线| 国模极品一区二区三区| 在线免费看av网站| 免费成人在线影院| 色综合久久av| 欧美free嫩15| 亚洲香蕉在线观看| 人人草在线观看| 久久久久久黄色| 999精品网站| jiujiure精品视频播放| 日本精品视频网站| 美女欧美视频在线观看免费 | 亚洲精品久久久久久久蜜桃| 91免费视频网址| 国产免费成人在线| 蜜臀久久99精品久久一区二区 | 色综合视频一区二区三区44| 中文字幕亚洲天堂| 中文字幕+乱码+中文| 国产精品日产欧美久久久久| 奇米影音第四色| 日韩精品一区二区三区免费观看| 国产精品视频yy9099| 日本视频在线| 日韩欧美中文字幕一区| 精品无码久久久久久久| av网站免费线看精品| 国产又黄又大又粗视频| 国产精品一国产精品| 国产精品美女久久久久av超清| 2019中文字幕在线视频| 日韩一区二区在线观看视频| 日韩av一区二区在线播放| 91美女视频网站| 一道本视频在线观看| 1024精品久久久久久久久| 91成人理论电影| 免费h视频在线观看| 在线成人免费网站| 99久久久无码国产精品免费| 亚洲一区二区三区视频在线播放| 粉嫩av懂色av蜜臀av分享| 肉色丝袜一区二区| 最近免费观看高清韩国日本大全| 久久影视三级福利片| 日韩av电影手机在线观看| 国产成人无吗| 日韩成人中文电影| 国产又粗又猛又爽又黄视频 | 欧美国产国产综合| 亚洲综合中文网| 亚洲欧美日韩一区在线观看| 亚洲成色www久久网站| 在线日韩成人| 国产成人综合精品在线| 高清全集视频免费在线| 精品小视频在线| 国产伦精品一区二区三区视频痴汉| 天涯成人国产亚洲精品一区av| 九九九视频在线观看| 国产精品18久久久久久久网站| 欧美国产亚洲一区| 小说区亚洲自拍另类图片专区| 国产在线一区二区三区欧美 | 91精品在线一区二区| 久久午夜免费视频| 中文字幕一区二区三区在线不卡 | 18久久久久久| 成人免费在线| 伊人伊成久久人综合网站| 蜜臀av免费在线观看| 欧美亚洲国产bt| 欧美一级视频免费观看| 亚洲欧美日韩综合aⅴ视频| 欧美黄色一级生活片| 成人午夜av电影| 久久综合在线观看| 日韩精品一卡二卡三卡四卡无卡| 97超碰在线人人| 亚洲成人av| 午夜精品福利一区二区| 网红女主播少妇精品视频| 亚洲资源在线看| 国产69精品久久久久9999人| 热久久这里只有| 国产高清中文字幕在线| 欧美精品在线第一页| 日本在线人成| 在线观看欧美日韩| 韩国三级av在线免费观看| 亚洲国产欧美自拍| 亚洲精品中文字幕成人片| 91精品国产色综合久久不卡电影| 中文字幕欧美人妻精品| 91九色02白丝porn| 7799精品视频天天看| 婷婷久久综合九色综合绿巨人| 国产一级生活片| 一区二区三区国产精品| 国产一区二区播放| 亚洲四区在线观看| 亚洲怡红院在线观看| 国产精品萝li| 日本激情视频一区二区三区| 国产精品视频一二三区| 精品熟妇无码av免费久久| 久久久www免费人成精品| 魔女鞋交玉足榨精调教| 91色九色蝌蚪| 中国美女乱淫免费看视频| 91蝌蚪porny成人天涯| 菠萝菠萝蜜网站| 91网页版在线| caopeng视频| 国产女人aaa级久久久级| 免费成人深夜天涯网站| 中文字幕乱码久久午夜不卡| 国产aaaaaaaaa| 亚洲视频一区二区在线观看| 国产精品国产精品88| 一区二区三区日韩欧美精品| 久久久久亚洲av无码专区| 亚洲成人中文在线| 国产成人精品片| 91极品视觉盛宴| 国产一区二区三区视频免费观看| 91精品国产综合久久精品麻豆| 国产免费福利视频| 精品国产一区二区亚洲人成毛片| 日本黄色免费视频| 亚洲欧美在线免费观看| 成人影视在线播放| 日韩一区视频在线| 日本色护士高潮视频在线观看| 久久久亚洲精选| 成人开心激情| 国产日韩欧美中文| 精品国产麻豆| 久久久福利视频| 久久视频国产| 超碰成人免费在线| 日韩成人精品在线观看| 女王人厕视频2ⅴk| 久久天天做天天爱综合色| 男女全黄做爰文章| 亚洲一区二区精品久久av| 极品国产91在线网站| 91精品国产乱码久久蜜臀| 日本视频在线观看一区二区三区| 最近2019年中文视频免费在线观看| 黄页在线观看免费| 国产成人在线播放| 97色成人综合网站| 亚洲丰满在线| 亚洲高清二区| 美女少妇一区二区| 国产精品亚洲成人| 五月天综合视频| 亚洲影院免费观看| 天天天天天天天干| 精品国产网站在线观看| av在线电影院| 国模精品一区二区三区色天香| 精品国产欧美日韩一区二区三区| 成人自拍视频网站| 欧美顶级大胆免费视频| 日韩少妇内射免费播放18禁裸乳| 久久爱另类一区二区小说| 黄色污在线观看| 一区二区三区在线观看欧美| 无码一区二区三区在线观看| 精品国产乱码久久久久久图片| 日本三级在线视频| 欧美在线影院在线视频| 日韩欧美中文在线观看| 亚洲高清视频一区二区| 国产欧美午夜| 丰满熟女人妻一区二区三区| 国产精品美日韩| 国产中文字幕视频| 亚洲精品97久久| 超黄网站在线观看| 91在线免费看网站| 91亚洲人成网污www| 激情六月丁香婷婷| 99久精品国产| 国产一级片视频| 麻豆国产欧美日韩综合精品二区| 97色在线视频| 台湾佬成人网| 久久精品人成| 国产一区导航| 99re这里只有| 亚洲成人综合在线| www.黄色av| 九九精品在线播放| 电影91久久久| 三级网在线观看| 久久国产福利国产秒拍| 在线免费看视频| 欧美性色综合网| 国产黄色免费在线观看| 国产99久久精品一区二区 夜夜躁日日躁 | 午夜免费福利在线观看| 国产精品黄视频| 精品久久美女| 天天干在线影院| 亚洲国产精华液网站w| 波多野结衣一本一道| 亚洲性猛交xxxxwww| 成人h在线观看| 亚洲日本japanese丝袜| 日韩av电影免费观看高清完整版| 99久久久无码国产精品性| 色狠狠桃花综合| 成人在线观看网站| 国产日韩精品一区二区| 国产高清欧美| 日韩精品在线播放视频| 一区二区三区不卡视频| 黄色小视频免费观看| 久久久久久久一区二区| 欧美1区二区| 老司机午夜av| 中文字幕一区三区| 国产激情视频在线播放| 久久久免费在线观看| 最新国产一区| 最新国产黄色网址| 亚洲精品视频在线看| 色婷婷av一区二区三| 欧美洲成人男女午夜视频| 北条麻妃国产九九九精品小说| 午夜剧场高清版免费观看| 亚洲精品成人天堂一二三| 天天摸天天干天天操| 国产精品wwwwww| 一区二区三区四区在线观看国产日韩 | 不卡的国产精品| 国产精品一二三在线观看| 99久久久久免费精品国产| 久久久精品毛片| 欧美成人免费在线视频| 久久精品色综合| 亚洲欧美久久久久| 亚洲综合色婷婷| 国产区在线视频| caoporn国产精品免费公开| 国产精品久久久久久久久久妞妞| 国产午夜精品福利视频| 日韩精品一区在线观看| 深夜成人影院| av在线com| 亚洲国产精品精华液ab| 亚洲精品字幕在线观看| 国产大片精品免费永久看nba| 欧美在线网址| 国产sm调教视频| 亚洲国产欧美一区二区三区同亚洲| av成人在线观看| 欧美日韩成人免费视频| 亚洲手机成人高清视频|