利用QRCoder生成二维码
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生成二维码的更多相关文章
- QRCoder生成二维码
现在二维码支付越来越流行,二维码使用的地方越来越多,项目中也需要一个二维码生成工具,QRCoder是一个简单的生成二维码的库,用C#.NET编写,他是开源的MIT-license. 二维码简介 二维条 ...
- 利用JAVA生成二维码
本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...
- 利用PHP生成二维码(转)
导读:在二维码广泛应用化的今天,在web站点中自动生成对应的二维码是最基础的需求.文章介绍了使用PHP自动生成二维码的三种方式. get方法实现方式一: $urlToEncode="163. ...
- Java利用Zxing生成二维码
Zxing是Google提供的关于条码(一维码.二维码)的解析工具,提供了二维码的生成与解析的方法,现在我简单介绍一下使用Java利用Zxing生成与解析二维码 1.二维码的生成 1.1 将Zxing ...
- Android利用zxing生成二维码
感谢大佬:https://blog.csdn.net/mountain_hua/article/details/80646089 **gayhub上的zxing可用于生成二维码,识别二维码 gayhu ...
- C# 利用QRCode生成二维码图片
网上生成二维码的组件是真多,可是真正好用的,并且生成速度很快的没几个,QRCode就是我在众多中找到的,它的生成速度快.但是网上关于它的使用说明,真的太少了,大都是千篇一律的复制粘贴.这是本要用它做了 ...
- asp.net(C#)利用QRCode生成二维码---.NET菜鸟的成长之路
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="QRCode.aspx.cs&q ...
- asp.net(C#)利用QRCode生成二维码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="QRCode.aspx.cs&q ...
- 利用zxing生成二维码
使用zxing类库可以很容易生成二维码QRCode,主要代码如下: private Bitmap createQRCode(String str,int width,int height) { Bit ...
随机推荐
- 七 异常处理的两种方式(创建全局异常处理器&自定义异常)
1 创建全局异常处理器 实现HandlerExceptionResolve接口 package com.springmvc01; import javax.servlet.http.HttpServl ...
- INUX下抓取当前登录用户登录密码的工具:mimipenguin
前有Mimikatz,今有mimipenguin,近日国外安全研究员huntergregal发布了工具mimipenguin,一款Linux下的密码抓取神器,可以说弥补了Linux下密码抓取的空缺. ...
- ZCGL大数据项目优化组件布置
1.经JMeter并发性能测试,每个HBaseService服务的并发请求上限大概是1K,为了支持5W个并发请求量,需要增加部署节点,相应需要增加部署路由网管Zuul,为了隐藏多个路由网管Zuul的I ...
- RabbitMq学习笔记——概念
1.RabbitMQ简介 MQ全称为Message Queue(消息队列),是一种“应用程序”<—>“应用程序”的通信方法.MQ是一个典型的“消费”<—>“生产者”模型的代表, ...
- 「NOIP2016」愤怒的小鸟
传送门 Luogu 解题思路 首先这个数据范围十分之小啊. 我们考虑预处理出所有可以带来贡献的抛物线 三点确定一条抛物线都会噻 然后把每条抛物线可以覆盖的点状压起来,然后状压DP随便转移就好了. 有一 ...
- 「NOIP2014」飞扬的小鸟
传送门 Luogu 解题思路 考虑 \(\text{DP}\) 设 \(dp[i][j]\) 表示飞到 \((i, j)\) 这个点的最小触屏次数. 转移其实比较显然,但问题是每次上升时都可以点很多次 ...
- PhpStorm 10.0.1破解激活步骤
1.下载破解补丁 链接:https://pan.baidu.com/s/1S4JVKiaFnCZG01MpDPaAAA 密码:c6x6 放到phpstorm安装目录下的lib文件夹下: C:\soft ...
- vim修改缩进问题
- 洛谷 P2375 [NOI2014]动物园
题目传送门 解题思路: 其实对于一个sum[i],其值就等于sum[next[i]] + sum[next[next[i]]] + ... + 1,然后我们可以记忆化,然后题目里又有一个限制,就是前后 ...
- 我的第一个爬虫【python selenium】
去年写的一个小功能,一年过得好快,好快! 目的:爬取京东商品详情页面的内容(商品名称.价格.评价数量)后存储到xls文档中,方便商家分析自己商品的动态. 软件:chrome(windows).chro ...