前言:
原先用zxing Code寫過基於Winfrom的批量生成二維碼工具,以及單個生成二維碼工具;批量生成二維碼Gihub源代碼
今天嘗試用QRCoder 加 Asp.Net Core 寫了一個在線生成二維碼的例子,並且保存圖片到Ubuntu系統;
代碼:
生成二維碼所需要用到的包:QRCoder
根據Github上的源代碼,引用NuGet包
PM> Install-Package QRCoder
根據傳入的參數,生成二維碼,並且保存圖片
public static void QRCode(string str) { QRCodeGenerator qrGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrGenerator.CreateQrCode(OpenId, QRCodeGenerator.ECCLevel.Q); QRCode qrCode = new QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(20); qrCodeImage.Save(@"/root/public/images/" + str + ".png", ImageFormat.Png); Logger.Info("二維碼生成路徑:" + @"/root/public/images/" + str + ".png"); qrCodeImage.Dispose(); }
注意事項:
部署到Ubuntu服務器上時,出現錯誤:
The type initializer for 'Gdip' threw an exception.
這是因爲Ubuntu系統中未安裝gdi庫造成的,需要安裝 libgdiplus
apt-get install libgdiplus
最後成功生成二維碼
參考資料:
- https://q.cnblogs.com/q/103863/
- https://www.cnblogs.com/Robbery/p/10115234.html