当前位置:   article > 正文

C# ZXing.Net生成二维码、识别二维码_c#识别二维码

c#识别二维码

一.ZXing.Net

也可使用Nuget包管理,添加如图:

说明:ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码。目标是能够对QR编码、Data Matrix、UPC的1D条形码进行解码。 其提供了多种平台下的客户端包括:J2ME、J2SE和Android。现在也有了对应的.Net版本

二、生成二维码

将字符编码时可以指定字符格式;默认为ISO-8859-1英文字符集,但一般移动设备常用UTF-8字符集编码,

可以通过QrCodeEncodingOptions设置编码方式。

如果要生成其他zxing支持的条形码,只要修改BarcodeWriter.Format就可以了。

  1. /// <summary>
  2. /// 生成二维码,保存成图片
  3. /// </summary>
  4. static void Generate1(string text)
  5. {
  6. BarcodeWriter writer = new BarcodeWriter();
  7. writer.Format = BarcodeFormat.QR_CODE;
  8. QrCodeEncodingOptions options = new QrCodeEncodingOptions();
  9. options.DisableECI = true;
  10. //设置内容编码
  11. options.CharacterSet = "UTF-8";
  12. //设置二维码的宽度和高度
  13. options.Width = 500;
  14. options.Height = 500;
  15. //设置二维码的边距,单位不是固定像素
  16. options.Margin = 1;
  17. writer.Options = options;
  18. Bitmap map = writer.Write(text);
  19. string filename = @"H:\桌面\截图\generate1.png";
  20. map.Save(filename, ImageFormat.Png);
  21. map.Dispose();
  22. }
//生成二维码 
Generate1("https://www.baidu.com/");
Generate1("ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用 ,只需要几步就可以快速创建您的Ionic应用,创建应用从这里开始");

三、生成条形码

  1. static void Generate2(string text)
  2. {
  3. BarcodeWriter writer = new BarcodeWriter();
  4. //使用ITF 格式,不能被现在常用的支付宝、微信扫出来
  5. //如果想生成可识别的可以使用 CODE_128 格式
  6. //writer.Format = BarcodeFormat.ITF;
  7. writer.Format = BarcodeFormat.CODE_128;
  8. EncodingOptions options = new EncodingOptions()
  9. {
  10. Width = 150,
  11. Height =50,
  12. Margin=2
  13. };
  14. writer.Options = options;
  15. Bitmap map = writer.Write(text);
  16. string filename = @"H:\桌面\截图\generate2.png";
  17. map.Save(filename, ImageFormat.Png);
  18. }
//生成条形码
Generate2("1234567890");
//错误说明
//只支持数字
Requested contents should only contain digits, but got 'i'
//只支持偶数个
The lenght of the input should be even
//最大长度80
Requested contents should be less than 80 digits long, but got 102

四、识别二维码/条形码

  1. /// <summary>
  2. /// 读取二维码
  3. /// 读取失败,返回空字符串
  4. /// </summary>
  5. /// <param name="filename">指定二维码图片位置</param>
  6. static string Read1(string filename)
  7. {
  8. BarcodeReader reader = new BarcodeReader();
  9. reader.Options.CharacterSet = "UTF-8";
  10. Bitmap map = new Bitmap(filename);
  11. Result result = reader.Decode(map);
  12. return result == null ? "" : result.Text;
  13. }
//1.读取二维码内容
//读取字母成功
//string filename = @"H:\桌面\截图\url.png";
//string filename = @"H:\桌面\截图\weibo.png";
//string filename = @"H:\桌面\截图\qrcode1.png";
//string filename = @"H:\桌面\截图\qrcode2.png";
//string filename = @"H:\桌面\截图\qrcode3.png";
//对于有logo的二维码只返回字符串内容
//string filename = @"H:\桌面\截图\qrcode4.png";
//string filename = @"H:\桌面\截图\qrcode5.png";
//string filename = @"H:\桌面\截图\qrcode6.png";
//识别条形码
string filename = @"H:\桌面\截图\generate2.png";
string result = Read1(filename);
Console.WriteLine(result);
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/715897
推荐阅读
相关标签
  

闽ICP备14008679号