ThoughtWorks.QRCode.Standard 1.0.1.6

二维码识别生成类库ThoughtWorks.QRCode标准版
ThoughtWorks.QRCode很好用,但是该类库不支持标准库
于是我通过反编译dll,做了个标准版,并依赖引用了System.Drawing.Common
另外我发现当解析数据过长,或者QRCodeVersion>=30时,会抛出异常,
这个我做了修复,使用自动QRCodeVersion,也就是这个属性无需赋值,可以参考readme里面的使用示例
作者haoersheng没有留联系方式,如有侵权请联系我删除!!!

Install-Package ThoughtWorks.QRCode.Standard -Version 1.0.1.6
dotnet add package ThoughtWorks.QRCode.Standard --version 1.0.1.6
<PackageReference Include="ThoughtWorks.QRCode.Standard" Version="1.0.1.6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ThoughtWorks.QRCode.Standard --version 1.0.1.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ThoughtWorks.QRCode.Standard, 1.0.1.6"
For F# scripts that support #r syntax, copy this into the source code to reference the package.

二维码识别生成类库ThoughtWorks.QRCode标准版

ThoughtWorks.QRCode很好用,但是该类库不支持标准库

于是我通过反编译dll,做了个标准版,并依赖引用了System.Drawing.Common

另外我发现当解析数据过长,或者QRCodeVersion>=30时,会抛出异常,

这个我做了修复,使用自动QRCodeVersion,也就是这个属性无需赋值,参考使用示例

作者haoersheng没有留联系方式,如有侵权请联系我删除!!!

使用示例

using System.Drawing;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;

namespace CommonUtils
{
    /// <summary>
    /// 二维码工具
    /// </summary>
    public static class QrCodeUtil
    {
        /// <summary>
        /// 返回二维码图片
        /// </summary>
        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);
        }

        /// <summary>
        /// 定义参数,生成二维码
        /// </summary>
        public static void Create(string text, string path)
        => Encode(text).Save(path);

        /// <summary>
        /// 返回二维码定义的字符串
        /// </summary>
        public static string Decode(Bitmap image)
        {
            var qrCodeBitmapImage = new QRCodeBitmapImage(image);
            var qrCodeDecoder = new QRCodeDecoder();
            return qrCodeDecoder.decode(qrCodeBitmapImage);
        }

        /// <summary>
        /// 返回二维码定义的字符串
        /// </summary>
        public static string Decode(string path)
        => Decode(new Bitmap(path));
    }
}
            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://www.nuget.org/packages/ThoughtWorks.QRCode.Standard

二维码识别生成类库ThoughtWorks.QRCode标准版

ThoughtWorks.QRCode很好用,但是该类库不支持标准库

于是我通过反编译dll,做了个标准版,并依赖引用了System.Drawing.Common

另外我发现当解析数据过长,或者QRCodeVersion>=30时,会抛出异常,

这个我做了修复,使用自动QRCodeVersion,也就是这个属性无需赋值,参考使用示例

作者haoersheng没有留联系方式,如有侵权请联系我删除!!!

使用示例

using System.Drawing;
using ThoughtWorks.QRCode.Codec;
using ThoughtWorks.QRCode.Codec.Data;

namespace CommonUtils
{
    /// <summary>
    /// 二维码工具
    /// </summary>
    public static class QrCodeUtil
    {
        /// <summary>
        /// 返回二维码图片
        /// </summary>
        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);
        }

        /// <summary>
        /// 定义参数,生成二维码
        /// </summary>
        public static void Create(string text, string path)
        => Encode(text).Save(path);

        /// <summary>
        /// 返回二维码定义的字符串
        /// </summary>
        public static string Decode(Bitmap image)
        {
            var qrCodeBitmapImage = new QRCodeBitmapImage(image);
            var qrCodeDecoder = new QRCodeDecoder();
            return qrCodeDecoder.decode(qrCodeBitmapImage);
        }

        /// <summary>
        /// 返回二维码定义的字符串
        /// </summary>
        public static string Decode(string path)
        => Decode(new Bitmap(path));
    }
}
            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://www.nuget.org/packages/ThoughtWorks.QRCode.Standard

Release Notes

通过overflow version++
解决了字符过长的问题

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.0.1.6 2,819 8/28/2020
1.0.1.5 87 8/28/2020
1.0.1.3 256 4/25/2020
1.0.0.3 285 2/29/2020
1.0.0.2 199 2/29/2020
1.0.0.1 329 1/16/2020