C# winform 生成二维码,解析二维码,保存为图片(附下载链接)

C# winform 生成二维码,解析二维码,保存为图片

引用ZXing.Net库,简单调用其提供的API实现二维码解析和生成

点我下载项目资源

在这里插入图片描述

请添加图片描述
在这里插入图片描述

扫描结果:
在这里插入图片描述

部分代码
/// < summary>
/// 解析二维码生成文本
/// < /summary>
/// < param name=“sender”>
/// < param name=“e”>
private void Button_Solve_Click(object sender, EventArgs e)
{
try
{
IBarcodeReader reader = new BarcodeReader();
Bitmap bmp = new Bitmap(this.pictureBox_Qrcode.Image);
Result result = reader.Decode(bmp);
bmp.Dispose();
if (result != null)
{
//条码内容
string text = result.Text;
this.textBox_Content.Text = text;
//条码类型
//string foramt = result.BarcodeFormat.ToString();
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
QRCode二维码维码支持中文,网上流传很多版本都说支持中文二维码。看过测试都有问题,自己看了源码改了下。 原版本 中有 IsUnicode 方法判断是否为Unicode编码 但这个方法好像有问题 所以无法准确判断中文。可以通过改写这个来实现中文。 另外有两个方法 都可以解决中文问题 public virtual String decode(QRCodeImage qrCodeImage, Encoding encoding) public virtual String decode(QRCodeImage qrCodeImage) 因为是虚方法可以重写这个方法就可以 所以 可以通过 改写IsUnicode 和 重写 这个两个虚方法来实现 /// /// 用于判断中文 /// /// /// public static bool IsUnicode(byte[] byteData) { // This is by Joson Jiang 用于判断中文 //因为ascii编码当中的最大为127,这样判断后, //就能正确的判断是不是unicode,这样就能正确的解码中文了. bool isUnicode = false; try { foreach (byte value in byteData) { if (value > 128) { isUnicode = true; break; } } } catch (Exception) { //其中的是原本的代码 无法正确判断 中文 string value1 = FromASCIIByteArray(byteData); string value2 = FromUnicodeByteArray(byteData); byte[] ascii = AsciiStringToByteArray(value1); byte[] unicode = UnicodeStringToByteArray(value2); if (ascii[0] != unicode[0]) return true; return false; } return isUnicode;//返回是不是Unicode编码 } /// /// 重写直接返回 解决中文问题 /// public class QRCodeDecoders : QRCodeDecoder { QRCodeDecoder decoder = new QRCodeDecoder(); public override String decode(QRCodeImage qrCodeImage) { sbyte[] data = decoder.decodeBytes(qrCodeImage); byte[] byteData = new byte[data.Length]; Buffer.BlockCopy(data, 0, byteData, 0, byteData.Length); String decodedData; return decodedData = ThoughtWorks.QRCode.Codec.Util.QRCodeUtility.FromUnicodeByteArray(byteData); } } 忘了说这个是 vs2010的 原版本是 vs2005

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薪薪代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值