zoukankan      html  css  js  c++  java
  • 创建二维码生成器

    首先要因为一个动态库文件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... } }

      

  • 相关阅读:
    当上微软MVP了
    关于南京四校联合程序设计大赛
    毕业生的商业软件开发之路初入职场
    开源XDesigner ORM 框架设计
    中国计算机软件行业分析3软件倾销
    中国计算机软件行业分析6软件外包的缺陷
    搜狐首页出现一个硕大的错别字
    中国计算机软件行业分析4外企的商业贿赂
    大家快来玩转盘抽奖游戏(走在网页游戏开发的路上(七))
    走在网页游戏开发的路上(四)
  • 原文地址:https://www.cnblogs.com/xiaowie/p/8692793.html
Copyright © 2011-2022 走看看