# 二维码识别生成工具-ThoughtWorks.QRCode标准库
**Repository Path**: atalent/ThoughtWorks.QRCode
## Basic Information
- **Project Name**: 二维码识别生成工具-ThoughtWorks.QRCode标准库
- **Description**: ThoughtWorks.QRCode.Core
- **Primary Language**: C#
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 24
- **Forks**: 8
- **Created**: 2019-01-05
- **Last Updated**: 2024-03-15
## Categories & Tags
**Categories**: barcode
**Tags**: None
## README
# 二维码识别生成类库ThoughtWorks.QRCode标准版
ThoughtWorks.QRCode很好用,但是该类库不支持标准库
于是我通过反编译dll,做了个标准版,并依赖引用了System.Drawing.Common
另外我发现当解析数据过长,或者QRCodeVersion>=30时,会抛出异常,
这个我做了修复,使用自动QRCodeVersion,也就是这个属性无需赋值,参考使用示例
作者haoersheng没有留联系方式,如有侵权请联系我删除!!!
使用示例
```c#
using System.Drawing;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;
namespace CommonUtils
{
///
/// 二维码工具
///
public static class QrCodeUtil
{
///
/// 返回二维码图片
///
public static Bitmap Encode(string text)
{
var qrCodeEncoder = new QRCodeEncoder();
//qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//qrCodeEncoder.QRCodeScale = 4;
//qrCodeEncoder.QRCodeVersion = 29;
//qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
return qrCodeEncoder.Encode(text);
}
///
/// 定义参数,生成二维码
///
public static void Create(string text, string path)
=> Encode(text).Save(path);
///
/// 返回二维码定义的字符串
///
public static string Decode(Bitmap image)
{
var qrCodeBitmapImage = new QRCodeBitmapImage(image);
var qrCodeDecoder = new QRCodeDecoder();
return qrCodeDecoder.decode(qrCodeBitmapImage);
}
///
/// 返回二维码定义的字符串
///
public static string Decode(string path)
=> Decode(new Bitmap(path));
}
}
```
```c#
var path = "D:/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png";
var qr = QrCodeUtil.Encode("Hello World!");
qr.Save(path);
Console.WriteLine(QrCodeUtil.Decode(qr));
path = "D:/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".png";
QrCodeUtil.Create("中国智造,惠及全球!", path);
Console.WriteLine(QrCodeUtil.Decode(path));
Console.WriteLine("Press enter to exit...");
Console.ReadLine();
```
源码
[https://gitee.com/atalent/ThoughtWorks.QRCode](https://gitee.com/atalent/ThoughtWorks.QRCode)
浏览
https://www.nuget.org/packages/ThoughtWorks.QRCode.Standard