[C#]二维码生成、解码(QRCode)【支持winform、web调用】

[C#]二维码生成、解码(QRCode)【支持winform、web调用】

 

winform(Demo)下载:QRCode.rar 

web(Demo)下载:webQRCode.rar

【ThoughtWorks.QRCode.dll 就是类库】

使用时需要增加:

using ThoughtWorks.QRCode.Codec;

using ThoughtWorks.QRCode.Codec.Data;

using ThoughtWorks.QRCode.Codec.Util;

演示包中的“QRCode.dll”是封装的类库。可以留邮箱,发给你们源码。

主要源代码:

1.生成二维码

复制代码
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();   
String encoding = cboEncoding.Text;   
if (encoding == "Byte")   
{   
     qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;   
}   
else if (encoding == "AlphaNumeric")   
{   
     qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.ALPHA_NUMERIC;   
}   
else if (encoding == "Numeric")   
{   
     qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.NUMERIC;   
}   
try   
{   
     int scale = Convert.ToInt16(txtSize.Text);   
     qrCodeEncoder.QRCodeScale = scale;   
}   
catch (Exception ex)   
{   
     MessageBox.Show("Invalid size!");   
     return;   
}   
try   
{   
     int version = Convert.ToInt16(cboVersion.Text);   
     qrCodeEncoder.QRCodeVersion = version;   
}   
catch (Exception ex)   
{   
     MessageBox.Show("Invalid version !");   
}   
   
string errorCorrect = cboCorrectionLevel.Text;   
if (errorCorrect == "L")   
     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;   
else if (errorCorrect == "M")   
     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;   
else if (errorCorrect == "Q")   
     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;   
else if (errorCorrect == "H")   
     qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;    
Image image;   
String data = txtEncodeData.Text;   
image = qrCodeEncoder.Encode(data);   
pb_view.Image = image;  
复制代码

2.解析二维码

QRCodeDecoder decoder = new QRCodeDecoder();   
String decodedString = decoder.decode(new QRCodeBitmapImage(new Bitmap(pb_view.Image)));   
txtEncodeData.Text = decodedString; 
posted @   小锋神  阅读(13769)  评论(16编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示