ZXing.Net
添加依赖
Nuget下载依赖ZXing.Net
注意
在做答题卡识别的时候不用用二值化的图片进行二维码的识别,识别率会大大下降。
生成二维码
1 | public static Bitmap createQRImage(string str) |
纠错级别:
L - 约 7% 纠错能力。
M - 约 15% 纠错能力。
Q - 约 25% 纠错能力。
H - 约 30% 纠错能力。
生成条形码
1 | public static Bitmap create128Image(string str) |
识别二维码、条形码
1 | public static string readCode(string imagePath) |
工具类
1 | namespace Z.Utils.Common |
QRCoder
安装
1 | Install-Package QRCoder -Version 1.3.9 |
网址https://github.com/codebude/QRCoder/
1 | namespace SchoolClient.Utils |
注意
pixelsPerModule
不是图片的大小,保持默认20即可,设置过大可能导致在部分电脑上图片显示异常。
Bitmap=>ImageSource
方式1
1 | public static ImageSource GetImageSourceByBitmap(Bitmap bm) |
方式2
1 | public static ImageSource GetImageSourceByBitmap2(Bitmap bm) |
两种方法都可以将Bitmap
转换为ImageSource
,并且都可以正常工作。
然而,推荐使用第二种方法GetImageSourceByBitmap2
,它使用的是System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap
方法。
这是因为CreateBitmapSourceFromHBitmap
方法是WPF提供的一个直接的API,用于从HBITMAP句柄创建BitmapSource
对象。
与第一种方法相比,它更简洁且更直接,在性能上也更高效。
所以,GetImageSourceByBitmap2
方法是更好的选择。
WEB二维码生成
方式1
https://www.npmjs.com/package/qrcode#usage
引用
1 | <script src="https://cdn.jsdelivr.net/npm/qrcode/build/qrcode.min.js"></script> |
或者
1 | npm install --save qrcode |
调用
1 | let that = this; |
注意
要转换的内容必须是字符串,不能是数字,否则会报错。
方式2
https://www.npmjs.com/package/qrcodejs2
1 | let qrcodes = this.$refs["qrcode"]; |
更新二维码
1 | qrcode.clear(); |