1、项目添加QRCoder.dll 和System.Drawing.dll的引用

2、创建二维码公共处理类(QRCoderHelper.cs)

  /// <summary>
/// 二维码公共处理类
/// </summary>
public static class QRCoderHelper
{
/// <summary>
/// 创建二维码返回文件路径名称
/// </summary>
/// <param name="plainText">二维码内容</param>
public static string CreateQRCodeToFile(string plainText)
{
try
{
string fileName = "";
if (String.IsNullOrEmpty(plainText))
{
return "";
} //二维码文件目录
string filePath = Path.Combine("C:\\","Down\\");
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
} //创建二维码文件路径名称
fileName = filePath + DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(, ) + ".jpeg"; QRCodeGenerator qrGenerator = new QRCodeGenerator();
//QRCodeGenerator.ECCLevel:纠错能力,Q级:约可纠错25%的数据码字
QRCodeData qrCodeData = qrGenerator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
QRCode qrcode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrcode.GetGraphic();
qrCodeImage.Save(fileName, ImageFormat.Jpeg);
return fileName;
}
catch (Exception ex)
{
throw new Exception("创建二维码返回文件路径名称方法异常", ex);
}
} /// <summary>
/// 创建二维码返回byte数组
/// </summary>
/// <param name="plainText">二维码内容</param>
public static byte[] CreateQRCodeToBytes(string plainText)
{
try
{
if (String.IsNullOrEmpty(plainText))
{
return null;
} QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
//QRCodeGenerator.ECCLevel:纠错能力,Q级:约可纠错25%的数据码字
QRCodeData qrCodeData = qrGenerator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
QRCode qrcode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrcode.GetGraphic();
MemoryStream ms = new MemoryStream();
qrCodeImage.Save(ms, ImageFormat.Jpeg);
byte[] arr = new byte[ms.Length];
ms.Position = ;
ms.Read(arr, , (int)ms.Length);
ms.Close(); return arr;
}
catch (Exception ex)
{
throw new Exception("创建二维码返回byte数组方法异常", ex);
}
} /// <summary>
/// 创建二维码返回Base64字符串
/// </summary>
/// <param name="plainText">二维码内容</param>
public static string CreateQRCodeToBase64(string plainText, bool hasEdify = true)
{
try
{
string result = "";
if (String.IsNullOrEmpty(plainText))
{
return "";
} QRCodeGenerator qrGenerator = new QRCoder.QRCodeGenerator();
//QRCodeGenerator.ECCLevel:纠错能力,Q级:约可纠错25%的数据码字
QRCodeData qrCodeData = qrGenerator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
QRCode qrcode = new QRCode(qrCodeData);
Bitmap qrCodeImage = qrcode.GetGraphic();
MemoryStream ms = new MemoryStream();
qrCodeImage.Save(ms, ImageFormat.Jpeg);
byte[] arr = new byte[ms.Length];
ms.Position = ;
ms.Read(arr, , (int)ms.Length);
ms.Close();
if (hasEdify)
{
result = "data:image/jpeg;base64," + Convert.ToBase64String(arr);
}
else
{
result = Convert.ToBase64String(arr);
}
return result;
}
catch (Exception ex)
{
throw new Exception("创建二维码返回Base64字符串方法异常", ex);
}
}
}

调用

            //二维码内容
string plainText = "https://i.cnblogs.com/EditPosts.aspx?opt=1"; //创建二维码返回文件路径名称
string fileName = QRCoderHelper.CreateQRCodeToFile(plainText);

利用QRCoder生成二维码的更多相关文章

  1. QRCoder生成二维码

    现在二维码支付越来越流行,二维码使用的地方越来越多,项目中也需要一个二维码生成工具,QRCoder是一个简单的生成二维码的库,用C#.NET编写,他是开源的MIT-license. 二维码简介 二维条 ...

  2. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  3. 利用PHP生成二维码(转)

    导读:在二维码广泛应用化的今天,在web站点中自动生成对应的二维码是最基础的需求.文章介绍了使用PHP自动生成二维码的三种方式. get方法实现方式一: $urlToEncode="163. ...

  4. Java利用Zxing生成二维码

    Zxing是Google提供的关于条码(一维码.二维码)的解析工具,提供了二维码的生成与解析的方法,现在我简单介绍一下使用Java利用Zxing生成与解析二维码 1.二维码的生成 1.1 将Zxing ...

  5. Android利用zxing生成二维码

    感谢大佬:https://blog.csdn.net/mountain_hua/article/details/80646089 **gayhub上的zxing可用于生成二维码,识别二维码 gayhu ...

  6. C# 利用QRCode生成二维码图片

    网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...

  7. asp.net(C#)利用QRCode生成二维码---.NET菜鸟的成长之路

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="QRCode.aspx.cs&q ...

  8. asp.net(C#)利用QRCode生成二维码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="QRCode.aspx.cs&q ...

  9. 利用zxing生成二维码

    使用zxing类库可以很容易生成二维码QRCode,主要代码如下: private Bitmap createQRCode(String str,int width,int height) { Bit ...

随机推荐

  1. UI的考核方式之【主题颜色 + 主题字体 + 主题样式】

    首先,项目中的颜色需要怎么管理呢? 宏?常量? 宏的值可以被改变,不用宏.那就用常量.那常量的名字怎么去起名呢? WSFConstants_Color_0xCCCCCC? WSFConstants_C ...

  2. 多用类型常量,少用#define预处理指令

    摒弃: #define ANIMATION_DURATION 0.3   #define ERROR_MESSAGE @“ErrorMessage” 1)没有常量的类型信息 2)假设此指令声明在某个头 ...

  3. mongoDB 分片集群常用指令

    1.帮助指令:sh.help(),查看有哪些指令及其含义和使用方法. mongos> sh.help() sh.addShard( host )                       se ...

  4. java并发LockSupport

    java并发LockSupport LockSupport是阻塞和唤醒线程的重要类. park()方法使得当前线程阻塞 unpark(Thread thread)唤醒线程 例子 可以把注释取消再执行, ...

  5. Nginx 的优势

    Nginx 的优势 在 Java 开发中,Nginx 有着非常广泛的使用,随便举几点: 使用 Nginx 做静态资源服务器:Java 中的资源可以分为动态和静态,动态需要经过 Tomcat 解析之后, ...

  6. 如果不想在django 的settings中保存mysql数据库的密码

    如题,你可以编写一个配置文件,用'OPTIONS' 将该配置文件导入进来,这样你发布到git上的源码上就没有你的数据库密码了. 这是django推荐的方法. # settings.py DATABAS ...

  7. 「NOIP2012」开车旅行

    传送门 Luogu 解题思路 第一步预处理每个点后面的最近点和次近点,然后就是模拟题意. 但是如果就这么搞是 \(O(N^2)\) 的,不过可以过70分,考场上也已经比较可观了. 考虑优化. 预处理最 ...

  8. php 语法错误定位 try catch Throwable

    try { } catch (Exception $ex) {      // 计算错误 }  catch (Throwable $ex) { // 语法错误,致命错误 }   Throwable { ...

  9. Jenkins + git + maven 安装

    1.jenkins安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo ...

  10. 全面理解Java中的String数据类型

    1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ne ...