C# 二维码生成——QRCode
C#二维码生成,这里使用开源的ThoughtWorks.QRCode.dll库。
步骤:
1.下载ThoughtWorks.QRCode.dll库文件,并引用到项目中。
2.创建QRCodeHandler.cs二维码处理类
/// 二维码处理类
/// 创建人:杨武
/// 创建日期:2015-01-22
/// </summary>
public class QRCodeHandler
{
/// <summary>
/// 生成二维码
/// </summary>
/// <param name="data">数据</param>
/// <param name="filePath">文件保存路径(绝对路径)</param>
/// <param name="hasLogo">二维码图标是否添加图片</param>
/// <param name="logoFilePath">图片的路径(绝对路径)</param>
/// <returns>true--成功;false--失败</returns>
public static bool CreateQRcode(string data, string filePath, bool hasLogo = false, string logoFilePath = "")
{
bool result = false;
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//二维码编码(Byte、AlphaNumeric、Numeric)
qrCodeEncoder.QRCodeScale = ;//二维码尺寸(Version为0时,1:26x26,每加1宽和高各加25
qrCodeEncoder.QRCodeVersion = ;//二维码密集度0-40
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//二维码纠错能力(L:7% M:15% Q:25% H:30%)
try
{
Image card = qrCodeEncoder.Encode(data, Encoding.UTF8); using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write))
{
card.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
fs.Close();
} if (hasLogo)
{
AddLogo(logoFilePath, card, filePath);
} card.Dispose();
result = true;
}
catch (Exception ex)
{
result = false;
}
return result;
} /// <summary>
/// 二维码图标中添加图片
/// </summary>
/// <param name="logoFilePath">图片路径</param>
/// <param name="cord">二维码</param>
/// <param name="cardSavePath">二维码保存路径</param>
private static void AddLogo(string logoFilePath, Image cord, string cardSavePath)
{
if (string.IsNullOrWhiteSpace(logoFilePath) || cord == null || File.Exists(logoFilePath) == false)
{
return;
} using (Image copyImage = Image.FromFile(logoFilePath))
{
using (Graphics g = Graphics.FromImage(cord))
{
int x = cord.Width / - copyImage.Width / ;
int y = cord.Height / - copyImage.Height / ;
g.DrawImage(copyImage, new Rectangle(x, y, copyImage.Width, copyImage.Height), , , copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
}
cord.Save(cardSavePath);
}
}
}
3.调用
string str = "http://hao.360.cn/?src=lm&ls=n3335c8fd8f";
string filtPath = Server.MapPath("~/Images/1.jpg");
string logoFilePath = Server.MapPath("~/Images/faceIcon.png");
QRCodeHandler.CreateQRcode(str, filtPath, true, logoFilePath);
C# 二维码生成——QRCode的更多相关文章
- JavaScript二维码生成——qrcode.js
在开发中,有时候,我们需要根据不同的内容来动态生成二维码,则可以使用qrcode.js这个小插件来实现. 1.qrcode.js文件内容: (1)未压缩(qrcode.js): /** * @file ...
- .NET 二维码生成(ThoughtWorks.QRCode)
引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string n ...
- jquery.qrcode.min.js生成二维码 通过前端实现二维码生成
主体代码: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <tit ...
- .NET 二维码生成(ThoughtWorks.QRCode)【转发jiangys】
.NET 二维码生成(ThoughtWorks.QRCode) 2015-06-21 22:19 by jiangys, 3790 阅读, 8 评论, 收藏, 编辑 引用ThoughtWorks.QR ...
- 【thinkphp5.1】 endroid/qrcode 二维码生成
composer 链接: https://packagist.org/packages/endroid/qrcode 注意:PHP版本 要求 7.1+ 1. 使用 composer 安装 endroi ...
- jQuery生成二维码 jquery.qrcode.js
https://github.com/jeromeetienne/jquery-qrcode 1.将jquery.qrcode.min.js和jquery添加到您的网页中 <script src ...
- 二维码生成:使用 JavaScript 库QRCode.js生成二维码
QRCode.js:跨浏览器的javascript二维码生成库,支持html5的Canvas画布,没有任何依赖. Github 地址:https://github.com/davidshimjs/qr ...
- jquery二维码生成插件jquery.qrcode.js
插件描述:jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码. 转载于:http://www.jq22.com ...
- vue2.0 自定义 生成二维码(QRCode)组件
1.自定义 生成二维码组件 QRCode.vue <!-- 生成二维码 组件 --> <template> <canvas class="qrcode-canv ...
随机推荐
- 安装sql server 2000
昨天下午快下班的时候 因为公司需要折腾了下sql server 2000,先不说这么古老的版本,而且安装的也是醉了... 首先sql server 2000是基于32位的系统开发的,那时候据说还没有6 ...
- 关于 Apache Shiro 详解
1.1 简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Securi ...
- 利用redis限制单个时间内某个mac地址的访问次数
一.思路 用户mac地址唯一,可以作为redis中的key,每次请求进来,利用ttl命令,判断redis中key的剩余时间,如果大于零,则利用incr进行+1操作,然后再与总的限制次数作对比. 二.代 ...
- python:随机数 random
#随机数 import random print(random.randint(10,12))#生成10-12之间的整数 print(random.uniform(10,12))#生成10-12之间的 ...
- render组件
[render组件] Render继承于Component. It contians general functionality for all renderers. A renderer is wh ...
- 129. Sum Root to Leaf Numbers(Tree; DFS)
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ...
- Quartz 官网翻译(转载)
Paths中的几个重要元素 Points void CGContextMoveToPoint ( CGContextRef c, CGFloat x, CGFloat y ); 指定 ...
- jdk+Tomcat环境
1.Tomcat概述 Tomcat服务器由Apache提供,开源免费.安装Tomcat之前需要先安装JDK,其实无论哪一种Javaweb服务器都需要先安装JDK. Tomcat6支持Servlet2. ...
- vs2017编译并配置libcurl入门教程
libcurl可以用来发送http请求,是c/c++发送http请求常用的库 下载libcurl源码包: libcurl下载地址:https://curl.haxx.se/download.html ...
- 读取mysq数据库l数据,并使用dataview显示
来自<sencha touch权威指南>,约198页开始 通过php脚本,可以将mysql数据库的数据作为json数据格式进行读取. (1)php代码(bookinfo.php): < ...