二维码生成与读取程序--C#

项目引用:ThoughtWorks.QRCode

  1. 二维码的生成代码

头部添加引用:

using ThoughtWorks.QRCode.Codec;

using ThoughtWorks.QRCode.Codec.Data;

转换二维码与保存图片代码:

private void button1_Click(object sender, EventArgs e)

        {

            if (textBox1.Text.Trim() != "")

            {

                string enCodeString = textBox1.Text;

                QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();

                pictureBox1.Image = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);

            }

        }

        private void 保存图片ToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (pictureBox1.Image != null)

            {

                SaveFileDialog s = new SaveFileDialog();

                s.Title = "保存二维码图片";

                s.Filter = "图片文件(*.jpg)|*.jpg";

                if(s.ShowDialog()==DialogResult.OK)

                try

                {

                    pictureBox1.Image.Save(s.FileName,System.Drawing.Imaging.ImageFormat.Jpeg);

                    MessageBox.Show("保存成功");

                }

                catch { MessageBox.Show("保存失败"); }

            }

        }

  1. 二维码的读取代码

头部引用:

using ThoughtWorks.QRCode.Codec;

using ThoughtWorks.QRCode.Codec.Data;

阅读二维码图片:

string filepath = "";

        private void button1_Click(object sender, EventArgs e)

        {

            OpenFileDialog p = new OpenFileDialog();

            p.Title = "请选择二维码文件";

            p.Filter = "图片文件(*.jpg)|*.jpg";

            p.Multiselect = false;

            if (p.ShowDialog() == DialogResult.OK)

            {

                filepath = p.FileName;

                System.Threading.Thread t = new System.Threading.Thread(read_two);

                t.IsBackground = true;

                t.Start();

            }

        }

        private void read_two()

        {

            if (filepath != "")

            {

                string tt = "";

                try

                {

                    Invoke((EventHandler)delegate

                    {

                        button1.Enabled = false;

                        button1.Text = "Waiting!";

                        pictureBox1.Image = new Bitmap(filepath);

                    });

                    //pictureBox1.Size = new Size(new Bitmap(filepath).Size.Width, new Bitmap(filepath).Size.Height);

                    QRCodeDecoder qrDecoder = new QRCodeDecoder();

                    string txtMsg = qrDecoder.decode(new QRCodeBitmapImage(new Bitmap(pictureBox1.Image)), Encoding.UTF8);

                    tt = txtMsg;

                }

                catch { tt = "识别失败"; }

                Invoke((EventHandler)delegate

                {

                    textBox1.Text = tt;

                    button1.Enabled = true;

                    button1.Text = "识别";

                });

            }

            System.Threading.Thread.CurrentThread.Abort();

        }

源码下载:https://download.csdn.net/download/weixin_43621549/49448249

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘二光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值