C#实现二维码功能,winform 以及 asp.net均可以用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#实现二维码功能,winform 以及 asp.net均可以用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3866字,纯文字阅读大概需要6分钟。
内容图文
二维码现在用途很多,怎么用C#编程生成呢?
准备 ThoughtWorks.QRCode.dll
需要 一个类 QRCode,这个类专门来生成二维码的
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using ThoughtWorks.QRCode; using ThoughtWorks.QRCode.Codec; namespace QRCodePro { public class QRCode { /// 生成二维码 /// </summary> /// <param name="strData"> 要生成的文字或者数字 </param> /// <param name="qrEncoding"> 三种尺寸:BYTE ,ALPHA_NUMERIC,NUMERIC </param> /// <param name="level"> 大小:L M Q H </param> /// <param name="version"> 版本:如 8 </param> /// <param name="scale"> 比例:如 4 </param> /// <returns></returns> public static Image CreateCode_Choose(string strData, string qrEncoding, string size, int version, int scale) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder(); string encoding = qrEncoding; switch (encoding) { case"Byte": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; case"AlphaNumeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC; break; case"Numeric": qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC; break; default: qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; break; } qrCodeEncoder.QRCodeScale = scale; qrCodeEncoder.QRCodeVersion = version; switch (size) { case"L": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L; break; case"M": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; break; case"Q": qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q; break; default: qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H; break; } //文字生成图片 Image image = qrCodeEncoder.Encode(strData); return image; } } }
在vs中新建窗体,搭建窗体,如图所示:
在主窗体中需要的代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace QRCodePro { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { cboEncoding.Items.Add("Byte"); cboEncoding.Items.Add("AlphaNumeric"); cboEncoding.Items.Add("Numeric"); cboEncoding.SelectedIndex = 0; //填充大小下拉框 cboSize.Items.Add("M"); cboSize.Items.Add("L"); cboSize.Items.Add("Q"); cboSize.Items.Add("H"); cboSize.SelectedIndex = 0; //填充文本框 txtVersion.Text = "8"; txtScale.Text = "4"; } privatevoid btnCreateCode_Click(object sender, EventArgs e) { string content = txtContent.Text; int version = Convert.ToInt32(txtVersion.Text); int scale = Convert.ToInt32(txtScale.Text); string size = cboSize.SelectedItem.ToString(); string encoding = cboEncoding.SelectedItem.ToString(); //检查空值字符串if (content == null || content == "") { MessageBox.Show("请输入二维码信息,支持中文"); } else { Image img = QRCode.CreateCode_Choose(content, encoding, size, version, scale); picCode.Image = img; } } privatevoid btnReset_Click(object sender, EventArgs e) { txtContent.Text = ""; } privatevoid btnSave_Click(object sender, EventArgs e) { if (picCode.Image != null) { SaveImages(picCode); } else { MessageBox.Show("还没生成图像呢!"); } } privatevoid SaveImages(PictureBox pic) { string Parentpath = @"D:\Photo"; //自1970 年1月1日00:00:00 GMT以来的毫秒数string filename = DateTime.Now.Ticks.ToString(); if (Parentpath.Substring(Parentpath.Length - 1, 1) != @"\") Parentpath = Parentpath + @"\"; string childPath = Parentpath + DateTime.Now.ToString("yyyyMMdd"); if (!Directory.Exists(childPath)) Directory.CreateDirectory(childPath); pic.Image.Save(childPath + "\\" + filename + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); MessageBox.Show("保存成功!"); } } }
实现的效果
保持文件
要把此项目移植到asp.net网站上也是极其简单的,这里就不再演示了。
原文:http://www.cnblogs.com/fanling521/p/5504933.html
内容总结
以上是互联网集市为您收集整理的C#实现二维码功能,winform 以及 asp.net均可以用全部内容,希望文章能够帮你解决C#实现二维码功能,winform 以及 asp.net均可以用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。