日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

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

前言

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

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

SkiaSharp.QrCode介紹

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

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

Demo

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

var?content?=?"My?IO"; //創(chuàng)建生成器 using?(var?generator?=?new?QRCodeGenerator()) {//?設置錯誤校正能力(ECC)級別var?qr?=?generator.CreateQrCode(content,?ECCLevel.H);//?創(chuàng)建一個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圖片,還是可以正常識別的:

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

總結

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

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