IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> zxing.net 0.16.8生成二维码,读取二维码,读取多个二维码 c# -> 正文阅读

[JavaScript知识库]zxing.net 0.16.8生成二维码,读取二维码,读取多个二维码 c#

更新到新版本,报错。老版本的函数发现少了很多。把少的文件添加到目录中,发现可以用了。

?

using System.Diagnostics;
using System.Text;
using ZXing;
using ZXing.Common;
using ZXing.Multi.QrCode;

namespace WinFormsApp4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 生成二维码图片
        /// </summary>
        /// <param name="strMessage">要生成二维码的字符串</param>
        /// <param name="width">二维码图片宽度</param>
        /// <param name="height">二维码图片高度</param>
        /// <returns></returns>
        private Bitmap? GetQRCodeByZXingNet(String strMessage, Int32 width, Int32 height)
        {
            Bitmap? result = null;
            try
            {
                var barCodeWriter = new BarcodeWriter();
                barCodeWriter.Format = BarcodeFormat.QR_CODE;
                barCodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");
                barCodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
                barCodeWriter.Options.Height = height;
                barCodeWriter.Options.Width = width;
                barCodeWriter.Options.Margin = 0;
                var bm = barCodeWriter.Encode(strMessage);
                result = barCodeWriter.Write(bm);
            }
            catch (Exception ex)
            {
                return null;
            }
            return result;
        }
        /// <summary>
        /// 解码二维码
        /// </summary>
        /// <param name="barcodeBitmap">待解码的二维码图片</param>
        /// <returns>扫码结果</returns>
        private Result DecodeQrCode(Bitmap barcodeBitmap)
        {
            var reader = new BarcodeReader();
            reader.Options.CharacterSet = "UTF-8";
            var result = reader.Decode(barcodeBitmap);
            return null??result;
        }
        /// <summary>
        /// 解码多个二维码
        /// </summary>
        /// <param name="bitmap">待解码的多个二维码图片</param>
        /// <returns>扫码结果</returns>
        private Result[] DecodeQRMulti(Bitmap bitmap)
        {
            var qc = new QRCodeMultiReader();
            LuminanceSource source = new BitmapLuminanceSource(bitmap);
            BinaryBitmap binarybitmap = new BinaryBitmap(new HybridBinarizer(source));
            IDictionary<DecodeHintType, object> hints = new Dictionary<DecodeHintType, object>();
            hints.Add(DecodeHintType.CHARACTER_SET, "UTF-8");
            hints.Add(DecodeHintType.TRY_HARDER, "3");
            Result[] rr = qc.decodeMultiple(binarybitmap, hints);
            return null??rr ;
        }
        private void button1_Click(object sender, EventArgs e)
        {
       
            Bitmap bitmap = (Bitmap)Image.FromFile(Environment.CurrentDirectory + "\\" + "dm.bmp");
            pictureBox1.Image = bitmap;
            var re = DecodeQRMulti(bitmap);
            if (re == null) { return; }
            StringBuilder sb = new StringBuilder();
            foreach (var i in re)
            {
                sb.Append(i.Text + i.ResultPoints[0] + i.ResultPoints[1] + i.ResultPoints[2] + "\r\n");
            }
         //   string bb = stopwatch.ElapsedMilliseconds.ToString();//3ms
            MessageBox.Show(sb.ToString());
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Bitmap bitmap = (Bitmap)Image.FromFile(Environment.CurrentDirectory + "\\" + "dm2.bmp");
            pictureBox1.Image = bitmap;
            var re = DecodeQrCode(bitmap);
            if (re == null) { return; }
            MessageBox.Show(re.Text+re.ResultPoints[0]+ re.ResultPoints[1]+ re.ResultPoints[2]);
        }

        private void button3_Click(object sender, EventArgs e)
        {
          var img=  GetQRCodeByZXingNet("1234",200,200);
          pictureBox1.Image = img;
        }
    }
}

生成二维码,读取二维码,读取多个二维码。

源码下载:

zxing.net最新版生成二维码,读取二维码,读取多个二维码。-C#文档类资源-CSDN文库

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-06 10:58:50  更:2022-05-06 11:01:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:53:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码