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的更多相关文章

  1. JavaScript二维码生成——qrcode.js

    在开发中,有时候,我们需要根据不同的内容来动态生成二维码,则可以使用qrcode.js这个小插件来实现. 1.qrcode.js文件内容: (1)未压缩(qrcode.js): /** * @file ...

  2. .NET 二维码生成(ThoughtWorks.QRCode)

    引用ThoughtWorks.QRCode.dll (源代码里有) 1.简单二维码生成及解码代码: //生成二维码方法一 private void CreateCode_Simple(string n ...

  3. jquery.qrcode.min.js生成二维码 通过前端实现二维码生成

    主体代码: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <tit ...

  4. .NET 二维码生成(ThoughtWorks.QRCode)【转发jiangys】

    .NET 二维码生成(ThoughtWorks.QRCode) 2015-06-21 22:19 by jiangys, 3790 阅读, 8 评论, 收藏, 编辑 引用ThoughtWorks.QR ...

  5. 【thinkphp5.1】 endroid/qrcode 二维码生成

    composer 链接: https://packagist.org/packages/endroid/qrcode 注意:PHP版本 要求 7.1+ 1. 使用 composer 安装 endroi ...

  6. jQuery生成二维码 jquery.qrcode.js

    https://github.com/jeromeetienne/jquery-qrcode 1.将jquery.qrcode.min.js和jquery添加到您的网页中 <script src ...

  7. 二维码生成:使用 JavaScript 库QRCode.js生成二维码

    QRCode.js:跨浏览器的javascript二维码生成库,支持html5的Canvas画布,没有任何依赖. Github 地址:https://github.com/davidshimjs/qr ...

  8. jquery二维码生成插件jquery.qrcode.js

    插件描述:jquery.qrcode.js 是一个能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码. 转载于:http://www.jq22.com ...

  9. vue2.0 自定义 生成二维码(QRCode)组件

    1.自定义 生成二维码组件 QRCode.vue <!-- 生成二维码 组件 --> <template> <canvas class="qrcode-canv ...

随机推荐

  1. mongodb分片(七)

    1.插入负载技术分片架构图 2.片键的概念和用处 看下面这个普通的集合和分片后的结果 3.什么时候用到分片呢? 3.1机器的磁盘空间不足 3.2单个的mongoDB服务器已经不能满足大量的插入操作 3 ...

  2. leetcode720

    public class Solution { public string LongestWord(string[] words) { var maxlist = new List<string ...

  3. subprocess in python3.5

    subprocess 该子模块允许你创建新的流程,连接到它们的输入/输出/错误管道,并获取他们的返回值.该模块打算替换多个旧的模块和功能:os.system   和  os.spawn * 使用sub ...

  4. then()方法是异步执行

    then()方法是异步执行 就是当.then()前的方法执行完后再执行then()内部的程序 这样就避免了,数据没获取到等的问题

  5. Linux任务前后台的切换(转)

    Linux任务前后台的切换   Shell支持作用控制,有以下命令实现前后台切换: 1. command& 让进程在后台运行 2. jobs 查看后台运行的进程 3. fg %n 让后台运行的 ...

  6. 4.Hadoop集群搭建之启动

    配置好Hadoop.HDFS.YARN.Zookeeper集群后,需要按照顺序启动. 前期准备 配置好Hadoop.HDFS.YARN.Zookeeper集群 先stop掉所有的hadoop服务 使用 ...

  7. iOS 上的蓝牙框架 - Core Bluetooth for iOS

    原文: Core Bluetooth for iOS 6 Core Bluetooth 是在iOS5首次引入的,它允许iOS设备可以使用健康,运动,安全,自动化,娱乐,附近等外设数据.在iOS 6 中 ...

  8. glTexGen

    [glTexGen] Rather than having to explicitly provide a texture coordinate for each vertex, we can use ...

  9. shiro 集成spring 配置 学习记录(一)

    首先当然是项目中需要增加shiro的架包依赖: <!-- shiro --> <dependency> <groupId>org.apache.shiro</ ...

  10. QUrl

    QUrl Detailed Description The QUrl class provides a convenient interface for working with URLs. It c ...