C# 生成二维码

在网上下载 ThoughtWorks.QRCode.dll

以下为代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;

namespace WindowsFormsApplication1
{
    //在界面上放二个button, 一个textbox  , 一个picturebox
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
       //生成二维码图片, ThoughtWorks.QRCode.Codec.QRCodeEncoder encoder
= new QRCodeEncoder(); encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字) encoder.QRCodeScale = 6;//大小(值越大生成的二维码图片像素越高) encoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误) encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级) String qrdata = textBox1.Text; System.Drawing.Bitmap bp = encoder.Encode(qrdata.ToString(), Encoding.GetEncoding("GB2312")); Image image = bp; pictureBox1.Image = bp; //保存二维码图片: SaveFileDialog sf = new SaveFileDialog(); sf.Title = "选择保存文件位置"; sf.Filter = "保存图片(*.jpg) |*.jpg|所有文件(*.*) |*.*"; //设置默认文件类型显示顺序 sf.FilterIndex = 1; //保存对话框是否记忆上次打开的目录 sf.RestoreDirectory = true; if (sf.ShowDialog() == DialogResult.OK) { Image im = this.pictureBox1.Image; //获得文件路径 string localFilePath = sf.FileName.ToString(); if (sf.FileName != "") { string fileNameExt = localFilePath.Substring(localFilePath.LastIndexOf("\\") + 1);//获取文件名,不带路径 // newFileName = fileNameExt+DateTime.Now.ToString("yyyyMMdd") ;//给文件名后加上时间 string FilePath = localFilePath.Substring(0, localFilePath.LastIndexOf(".")); //获取文件路径,带文件名,不带后缀 string fn = sf.FileName; pictureBox1.Image.Save(FilePath + "-" + DateTime.Now.ToString("yyyyMMdd") + ".jpg"); } } } private void button2_Click(object sender, EventArgs e) { //解析二维码信息 QRCodeDecoder decoder = new QRCodeDecoder(); String decodedString = decoder.decode(new QRCodeBitmapImage(new Bitmap(pictureBox1.Image))); this.textBox1.Text = decodedString; } } }
原文地址:https://www.cnblogs.com/jerron/p/4312608.html