文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

.NET中怎么生成二维码

2023-06-17 05:59

关注

.NET中怎么生成二维码,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1、新建一个window应用程序,然后引入.NET二维码类库(开源的类库,可从网上下载):

.NET中怎么生成二维码

2、构建UI界面,代码如下:

namespace WinQRCode {     partial class Form1     {         /// <summary>         /// 必需的设计器变量。         /// </summary>         private System.ComponentModel.IContainer components = null;          /// <summary>         /// 清理所有正在使用的资源。         /// </summary>         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>         protected override void Dispose(bool disposing)         {             if (disposing && (components != null))             {                 components.Dispose();             }             base.Dispose(disposing);         }          #region Windows 窗体设计器生成的代码          /// <summary>         /// 设计器支持所需的方法 - 不要         /// 使用代码编辑器修改此方法的内容。         /// </summary>         private void InitializeComponent()         {             this.button1 = new System.Windows.Forms.Button();             this.button2 = new System.Windows.Forms.Button();             this.pictureBox1 = new System.Windows.Forms.PictureBox();             this.label1 = new System.Windows.Forms.Label();             this.textBox1 = new System.Windows.Forms.TextBox();             this.label2 = new System.Windows.Forms.Label();             this.lbl解码信息 = new System.Windows.Forms.Label();             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();             this.SuspendLayout();             //              // button1             //              this.button1.Location = new System.Drawing.Point(446, 31);             this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);             this.button1.Name = "button1";             this.button1.Size = new System.Drawing.Size(103, 37);             this.button1.TabIndex = 0;             this.button1.Text = "编码";             this.button1.UseVisualStyleBackColor = true;             this.button1.Click += new System.EventHandler(this.button1_Click);             //              // button2             //              this.button2.Location = new System.Drawing.Point(446, 81);             this.button2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);             this.button2.Name = "button2";             this.button2.Size = new System.Drawing.Size(103, 37);             this.button2.TabIndex = 1;             this.button2.Text = "解码";             this.button2.UseVisualStyleBackColor = true;             this.button2.Click += new System.EventHandler(this.button2_Click);             //              // pictureBox1             //              this.pictureBox1.Location = new System.Drawing.Point(23, 117);             this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);             this.pictureBox1.Name = "pictureBox1";             this.pictureBox1.Size = new System.Drawing.Size(279, 253);             this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;             this.pictureBox1.TabIndex = 2;             this.pictureBox1.TabStop = false;             //              // label1             //              this.label1.AutoSize = true;             this.label1.Location = new System.Drawing.Point(18, 39);             this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);             this.label1.Name = "label1";             this.label1.Size = new System.Drawing.Size(69, 25);             this.label1.TabIndex = 3;             this.label1.Text = "信息:";             //              // textBox1             //              this.textBox1.Location = new System.Drawing.Point(95, 37);             this.textBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);             this.textBox1.Name = "textBox1";             this.textBox1.Size = new System.Drawing.Size(333, 31);             this.textBox1.TabIndex = 4;             //              // label2             //              this.label2.AutoSize = true;             this.label2.Location = new System.Drawing.Point(18, 81);             this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);             this.label2.Name = "label2";             this.label2.Size = new System.Drawing.Size(88, 25);             this.label2.TabIndex = 5;             this.label2.Text = "二维码:";             //              // lbl解码信息             //              this.lbl解码信息.AutoSize = true;             this.lbl解码信息.Location = new System.Drawing.Point(101, 81);             this.lbl解码信息.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);             this.lbl解码信息.Name = "lbl解码信息";             this.lbl解码信息.Size = new System.Drawing.Size(0, 25);             this.lbl解码信息.TabIndex = 6;             //              // Form1             //              this.AutoScaleDimensions = new System.Drawing.SizeF(11F, 24F);             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;             this.ClientSize = new System.Drawing.Size(572, 384);             this.Controls.Add(this.lbl解码信息);             this.Controls.Add(this.label2);             this.Controls.Add(this.textBox1);             this.Controls.Add(this.label1);             this.Controls.Add(this.pictureBox1);             this.Controls.Add(this.button2);             this.Controls.Add(this.button1);             this.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));             this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);             this.Name = "Form1";             this.Text = "二维码";             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();             this.ResumeLayout(false);             this.PerformLayout();          }          #endregion          private System.Windows.Forms.Button button1;         private System.Windows.Forms.Button button2;         private System.Windows.Forms.PictureBox pictureBox1;         private System.Windows.Forms.Label label1;         private System.Windows.Forms.TextBox textBox1;         private System.Windows.Forms.Label label2;         private System.Windows.Forms.Label lbl解码信息;     } }

图形如下所示:
.NET中怎么生成二维码

编写 编码和解码按钮事件,进行编码和解码处理:

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;  namespace WinQRCode {     using ThoughtWorks.QRCode.Codec;     using ThoughtWorks.QRCode.Codec.Data;     using ThoughtWorks.QRCode.Codec.Util;     using System.IO;     using PdfToImage;     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }         /// <summary>         /// 编码         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void button1_Click(object sender, EventArgs e)         {             if (this.textBox1.Text != "")             {                 Cursor.Current = Cursors.WaitCursor;                 if (textBox1.Text.Trim() == String.Empty)                 {                     MessageBox.Show("不能为空.");                     return;                 }                 QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();                                qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;                 qrCodeEncoder.QRCodeScale = 4;                 qrCodeEncoder.QRCodeVersion = 7;                             qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;                                System.Drawing.Image image;                 String data = textBox1.Text;                 //编码                 image = qrCodeEncoder.Encode(data);                 //图片显示                 this.pictureBox1.Image = image;                 Cursor.Current = Cursors.Default;              }         }         /// <summary>         /// 解码         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void button2_Click(object sender, EventArgs e)         {             Cursor.Current = Cursors.WaitCursor;             Bitmap b = this.pictureBox1.Image as Bitmap;             try             {                 QRCodeDecoder decoder = new QRCodeDecoder();                 //解码                 String decodedString = decoder.decode(new QRCodeBitmapImage(b));                 //显示解码信息                 this.lbl解码信息.Text += decodedString ;             }             catch (Exception ex)             {                 MessageBox.Show(ex.Message);             }             Cursor.Current = Cursors.Default;         }          private void Form1_Load(object sender, EventArgs e)         {          }     } }

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯