日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

使用C#快速生成二维码 | 真正跨平台方案

發布時間:2023/12/4 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用C#快速生成二维码 | 真正跨平台方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

二維碼(QR Code),與傳統的一維碼,比如條形碼,二維碼具有存儲的數據量更大;可以包含數字、字符,及中文文本等混合內容;有一定的容錯性(在部分損壞以后還可以正常讀取);空間利用率高等優點。

因此,二維碼在我們的生活中被廣泛應用,例如支付碼、健康碼等。

SkiaSharp.QrCode介紹

雖然已經有很多生成二維碼的解決方案,但是它們大多依賴System.Drawing,而在Linux下需要考慮System.Drawing的GDI+兼容性問題(需要安裝libgdiplus)。

如果要實現真正的跨平臺二維碼生成方案,可以試試SkiaSharp.QrCode,因為它完全不依賴GDI和System.Drawing。

Demo

引用Nuget包SkiaSharp.QrCode,然后編寫如下代碼:

var?content?=?"My?IO"; //創建生成器 using?(var?generator?=?new?QRCodeGenerator()) {//?設置錯誤校正能力(ECC)級別var?qr?=?generator.CreateQrCode(content,?ECCLevel.H);//?創建一個Canvasvar?info?=?new?SKImageInfo(512,?512);using?(var?surface?=?SKSurface.Create(info)){var?canvas?=?surface.Canvas;//?渲染二維碼到Canvascanvas.Render(qr,?info.Width,?info.Height);//?輸出到文件using?(var?image?=?surface.Snapshot())using?(var?data?=?image.Encode(SKEncodedImageFormat.Png,?100))using?(var?stream?=?File.OpenWrite(@"QRCode.png")){data.SaveTo(stream);}} }

結論

生成二維碼最關鍵的是ECC級別設置,具體取決于最終圖像計劃使用的場合,是否容易被污損或遮擋:

  • L:最大糾錯率7%

  • M:最大糾錯率15%

  • Q:最大糾錯率25%

  • H:最大糾錯率30%

比如上面生成的二維碼,我覆蓋了一張Logo圖片,還是可以正常識別的:

如果你覺得這篇文章對你有所啟發,請關注我的個人公眾號”My IO“

總結

以上是生活随笔為你收集整理的使用C#快速生成二维码 | 真正跨平台方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。