生成和识别二维码

本来认为这功能在网上一搜一大堆,结果确实如此。但没有一个能用的,要么就是要收费,要么不能使用。 于是乎一顿搜索,经测试代码稳定,无论是纯二维码还是复杂图像嵌入二维码,均可识别


文章目录

  • 生成和识别二维码
  • 第一步:
  • 第二步:
  • 参考引用

第一步:

Install-Package ZXing.Net -Version 0.16.6


第二步:

class Program{static void Main(string[] args){var data = "http://programmingnotes.org/";// Encode data to a QR code byte arrayvar bytes = CreateQRCode(data);//File.WriteAllBytes(@"c:\a.png", bytes);Console.WriteLine($"Length: {bytes.Length}");// Decode QR code to a stringvar result = ReadQRCode(bytes);var result2 = ReadQRCode(File.ReadAllBytes(@"E:\Desktop\erweima\微信图片_20210721150957.jpg"));Console.WriteLine($"Result: {result}");}/// <summary>/// Converts a string and encodes it to a QR code byte array/// </summary>/// <param name="data">The data to encode</param>/// <param name="height">The height of the QR code</param>/// <param name="width">The width of the QR code</param>/// <param name="margin">The margin around the QR code</param>/// <returns>The byte array of the data encoded into a QR code</returns>public static byte[] CreateQRCode(string data, int height = 100, int width = 100, int margin = 0){byte[] bytes = null;var barcodeWriter = new ZXing.BarcodeWriter(){Format = ZXing.BarcodeFormat.QR_CODE,Options = new ZXing.QrCode.QrCodeEncodingOptions(){Height = height,Width = width,Margin = margin}};using (var image = barcodeWriter.Write(data)){using (var stream = new System.IO.MemoryStream()){image.Save(stream, System.Drawing.Imaging.ImageFormat.Png);bytes = stream.ToArray();}}return bytes;}/// <summary>/// Converts a QR code and decodes it to its string data /// </summary>/// <param name="bytes">The QR code byte array</param> /// <returns>The string data decoded from the QR code</returns>public static string ReadQRCode(byte[] bytes){var result = string.Empty;using (var stream = new System.IO.MemoryStream(bytes)){using (var image = System.Drawing.Image.FromStream(stream)){var barcodeReader = new ZXing.BarcodeReader();var decoded = barcodeReader.Decode((System.Drawing.Bitmap)image);if (decoded != null){result = decoded.Text;}}}return result;}}

参考引用

生成识别二维码

C# 生成和识别二维码相关推荐

  1. java生成和识别二维码

    全栈工程师开发手册 (作者:栾鹏) java教程全解 本文使用两种方式生成和识别二维码. 方法1:使用日本公司的qrcode 需要引入的包 qrcode_swetake.jar qrcode.jar ...

  2. 香橙派 ubuntu c# .net 使用ThoughtWorks.QRCodCore库生成 或识别 二维码,及报错处理方法

    在linux下生成和识别二维码,试了大半天,找到个库测试通过可以使用 ThoughtWorks.QRCodCore 其它的库有些仅在window下可用,有些使用困难 这里如果你在linux下跑的话,一 ...

  3. Android 扫描、生成、识别二维码、条码 一库搞定

    他来了,他来了,他带着YXing走来了. YXing 集成了CameraX + zxing, 简洁调用,功能完善,自定义扫码界面,再也不用像以前一样cv一堆冗余的Camera代码进项目了. 怎么集成: ...

  4. 用 Java 生成和识别二维码就这么简单

    大家好,我是青空. 青空最近一直在思考一个问题,Java 能不能做一些比较有意思的事情,但是在网络上搜索的时候,有意思好玩的东西,都被 Python 给做了.Java 似乎就只剩下八股文,面试,框架, ...

  5. python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程

    一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错&quo ...

  6. c# 生成、识别二维码

    @Tomato c# 这里以winform为例,窗体内拉入,textBox1.button1.button2.pictureBox1 4个控件 文章目录 1.引用包 2.生成二维码 3.识别二维码 1 ...

  7. Python3 生成和识别二维码

    文章目录 问题描述 代码 一点解释 [写在前面] 在当今社会中,二维码的使用非常的广泛.当然作为一名充满好奇心又爱装逼的 coder 怎么能不会使用二维码编码自己想表达的内容呢,尤其是用在装逼和找对象 ...

  8. AI生成二维码Stable diffusion生成可识别二维码【附完整教程】【附完整案例】

    前言 最近的炫酷QR比较火,所以今天给大家分享一下如何实现.首先我们知道QR二维码已经改变了信息的共享和获取方式.但是,QR码的视觉外观可能并不总是符合设计或艺术品的美学要求.为了解决这个问题,Con ...

  9. python实现二维码识别软件_用 Python 生成 识别二维码

    说到二维码大家一定不陌生,可以说现在二维码几乎渗透到了我们生活的各个角落,举例来说吧,我们到超市商场购物时扫描二维码付款,我们出行时乘坐公交地铁扫描二维码进站,我们到菜鸟驿站取件时扫描二维码取件,如果 ...

最新文章

  1. 模拟操作系统动态内存管理(c实现)
  2. Git提交代码时报 Please tell me who you are
  3. 【机器学习】Python机器学习的神器- Scikit-learn使用说明
  4. php显示控制器不存在,phpcms控制器不存在解决方法
  5. ubuntu 13.04 mysql_Ubuntu13.04 下MySQL5.6安装过程
  6. android 左滑按钮,android开发类似微信列表向左滑动按钮操作
  7. python获取浏览器数据_python 获取有关访问者的浏览器的 细节
  8. 工厂电子产品工艺文件_建智能工厂,人机如何达到最佳组合?
  9. centos7升级gcc到5.3.0
  10. 几款4Gb光纤连接产品对比
  11. uuid.randomuuid()回重复么_【编译器玄学研究报告】第三期——“O0” 就能逃出优化的魔爪么?...
  12. ascll编码表图片_ASCII编码表
  13. 微信APP支付开发指引
  14. web前端课程设计:猫咪领养网站 HTML+CSS+JavaScript
  15. 2的次方表(1~64次方)
  16. 中国3G蛋糕1.5万亿 10倍三峡工程
  17. 【Ruby on Rails全栈课程】2.1 ruby语言入门
  18. Swagger官网与官方文档
  19. How to get admin priviledge in Vista using ziguang holes
  20. Vue解决warning Emitted value instead of an instance of Error

热门文章

  1. GQC的HIL启动流程
  2. Android 7.1.2上默认wifi链接之后实际能上网却一直显示不能上网问题
  3. 产品设计体会(6026)乱弹餐馆“菜单”的设计
  4. 清华大学电子计算机学院山西籍导师,清华大学电子工程系研究生导师介绍:鲍捷...
  5. MXD修改数据源 arcgis
  6. android热启动时间,Android冷启动和热启动
  7. 最新Swoole4.0深入学习-与client的初相遇
  8. CNN基本原理以及卷积池化的实现细节
  9. [转]乔布斯的薄伽梵歌 Steve’s Bhagavat Gita
  10. Web自动化测试(一)