创建二维码生成器

首先要因为一个动态库文件ThoughtWorks.QRCode.Codec; 可以去网上下载一个ThoughtWorks.QRCode.dll。之后添加现有项目引用就可以


using ThoughtWorks.QRCode.Codec;   
using ThoughtWorks.QRCode.Codec.Data;//可以省略
using ThoughtWorks.QRCode.Codec.Util;//可以省略
using System.Text.RegularExpressions;//可以省略

namespace 二维码
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        //生成二维码
        private void button1_Click(object sender, EventArgs e)
        {
            //实例化二维码类
            QRCodeEncoder qr = new QRCodeEncoder();
            qr.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码格式为byte
            /*设置规模和版本
             这里的设置规模:4,版本:7,其余值可以自行试验,这两个值基本只是改变了二维码的大小。
            */
            qr.QRCodeScale = 4;
            qr.QRCodeVersion = 7;
            //这只错误效验的级别一共有4个级别
            qr.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;

            //定义一个网址 
            string link = "https://www.jd.com/";
            //定义一个图像=空
            Image image=null;
            //图像接收=二维码.编码(link)
            image = qr.Encode(link);
            //pictrue控件的图像=编码后接收的图像
            pictureBox1.Image = image;
            
            
        }
       //保存二维码
        private void button2_Click(object sender, EventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();  //实例化保存窗体类
            //保存窗体另存为的后缀名
            save.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif|PNG Image|*.png";
            //保存窗体的标题
            save.Title = "保存二维码";
            //判断pictrue控件里是否有Image,没有就return
            if (pictureBox1.Image==null)
            {
                MessageBox.Show("没有要保存的图片");
                return;
            }
            //二维码默认文件的名字为空;
            save.FileName = string.Empty;
            //判断保存打开的窗体等不等于ok按钮
            if (save.ShowDialog()==DialogResult.OK)
            {
                //pictrue控件里的Image图像保存路径下,名字为二维码名字
                pictureBox1.Image.Save(save.FileName);
                MessageBox.Show("保存成功");
            }
            else
            {
                return;
            }

        }
    }
}

 

  //解码
private void btnDecode_Click(object sender, EventArgs e) { try {
          //定义字符串接收=解码.解码方法(新的 二维码bitmapImage(new Bitmap(图片空间中的图像)),解码为默认)
string decodedString = new QRCodeDecoder().decode(new QRCodeBitmapImage(new Bitmap(pb_view.Image)), Encoding.Default); //String decodedString = decodedString(new QRCodeBitmapImage(new Bitmap(pb_view.Image)), Encoding.UTF8); txtEncodeData.Text = decodedString; } catch (Exception pv) { MessageBox.Show(pv.Message,"识别失败"); return; }

 

  
//打开图像
 private void button4_Click(object sender, EventArgs e)
        {
            OpenFileDialog opencode = new OpenFileDialog();
            opencode.Filter="JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif|PNG Image|*.png";
            if (opencode.ShowDialog()==DialogResult.OK)
            {

                pictureBox1.Image = Image.FromFile(opencode.FileName.ToString());
            }
        }

 

//打印功能

 private void button7_Click(object sender, EventArgs e)
        {
            PrintDialog printDialog = new PrintDialog();  //选择打印机
            printDialog.Document = printDocument1;  //打印机内容=PrintDocument控件内容
            if (printDialog.ShowDialog(this) == DialogResult.OK) //到这里会出现选择打印项的窗口  
            {
                printDocument1.Print(); //到这里会出现给文件命名的窗口,点击确定后进行打印并完成打印  
            }  
        }
     //打印内容控件事件-----打印页
        private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {

            try
            {
                if (pictureBox1.Image!=null)//如果pictrueBox的图像不为空
                {  
            
            //打印页.绘制页.画图像(pictrueBox图像,可见剪辑区域的边框) e.Graphics.DrawImage(pictureBox1.Image,e.Graphics.VisibleClipBounds);
            //是否打印附加页 e.HasMorePages = false; } } catch (Exception exception) { // Log... } }

  

posted @ 2018-04-02 14:01  WhiteSpace  阅读(830)  评论(0编辑  收藏  举报