准备工作:引入一悔仿芦个dll——ThoughtWorks.QRCode
dll作用:封装成熟的二维码算法等(有包不用自己写的,我觉得都是大仙)
引入dll方法:
(1)打开“程序包管理控制台”(视图—大唤—其他碧带窗口——程序包管理控制台)
(2)Install-Package -ProjectName 你的项目名称 ThoughtWorks.QRCode
(3)等待等待等待等待。。。。。。。然后装完。
生成二维码的核心代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//mapPath:网站根目录
//fileSaveFolder:相对路径
//link:链接或者文本
public static string
GenerateLinkQRCode
(string mapPath, string fileSaveFolder, string link)
{
QRCodeEncoder qr = new QRCodeEncoder()
{
//编码
QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE,
//二维码缩放
QRCodeScale = 4,
//数字越小,二维码密度越小,
//可容纳的文本越少
QRCodeVersion = 4,
//
QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M
}
//存放路径处理
if (!Directory.Exists(mapPath + fileSaveFolder))
{
Directory.CreateDirectory(mapPath + fileSaveFolder)
}
//给二维码图片取名字
//规则可任意修改
string fileName = "QRCode" +
DateTime.Now.ToString("yyyyMMddHHmmss") +
随机字符串 +
".png"
//存放二维码的绝对路径
string filePath = mapPath + fileSaveFolder + fileName
//生成二维码图片放在内存中
Bitmap bitmap = qr.Encode(link)
//保存图片到服务器磁盘(本地保存)
Bitmap.Save(filePath, System.Drawing.Imaging.ImageFormat.Png)
//准备返回二维码图片相对路径
string result = fileSaveFolder + fileName
result = "/" + result.Replace(@"\", "/")
//输出结果,就是二维码的路径
return result
}
本回答由提问者推荐评论 0 0
J_oin
采纳率:42% 擅长: JavaScript C#/.NET 编程语言 Html/Css
其他回答
新建一个window应用程序,然后引入.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)
{
}
}
}
将扫描q连接在电脑上确认你的扫描q能正常传输数据,看你提供的哪岩贺网页确认你用的是USB 接口的扫描q那在编写李派程序语言的时候只要你想输入条码的数据就在光标闪烁处枣敏停止编写并用扫描q扫描条码即可使用QRMaker控件生漏燃成氏搜扰,vssver.scc
QRmaker.lic
QRmaker.oca
QRmaker.tlb
QRmaker.ocx
把上列的文件放到C:\WINDOWS\system32 文件歼旦夹下面 然后运行注册 regsvr32 QRmaker.ocx 便可使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)