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. linux 进程通信 :流套接字

    消息队列是可以实现没有共同关系的进程之间的通信.Socket则可以实现不同计算机的不同进程之间的通信. //地址的结构体 struct sockaddr_in{ short int sin_famil ...

  2. 基于ARP的局域网IP劫持——C语言实现

      我站在 烈烈风中   恨不能 荡尽绵绵心痛   望苍天 四方云动   剑在手   问天下谁是英雄 ——<霸王别姬> 阅读这篇文章之前,请确认已经熟悉ARP报文伪造的方法,可参考< ...

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

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

  4. CentOS Grub、BASH 故障、解决方法

    简介: Grub 常见的两种故障:Grub.conf 文件丢失.MBR 损坏 ( 不管恢复怎么样,还是先备份好吧 ) 一.Grub.conf 文件丢失 shell > rm -rf /boot/ ...

  5. django-rest-swagger

    前提工作 pip3 install --user django>=2.0.0 pip3 install --user django-rest-swagger 安装完成之后,创建一个django项 ...

  6. 使用NPM在项目中引入【lodash】

    mkdir [文件名 ] 创建项目文件 mkdir lodashDemo cd [文件名] 进入项目文件 cd lodashDemo nvm -v 查看nvm版本,确定nvm已安装 nvm -v No ...

  7. Node.js版-七夕无事,人艰勿拆,求别说...

    七夕无事,端坐电脑前coding,略苦逼,人艰勿拆,求别说...

  8. Linux实战教学笔记47:JAVA企业级应用服务器之TOMCAT实战

    第一章 Tomcat简介 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache,Sun和其他一些公司及个人共 ...

  9. Python中的try...except...finally

    Python的异常处理代码格式如下: try: // do something except Exception as e: // dual with exception finally: // fi ...

  10. Linux下Mysql数据库互为主从的配置过程

    配置准备: 两台机器:A(193.168.10.101)  B(193.168.10.102) mysql大版本需要一致,小版本可忽略 配置过程: A(193.168.10.101) 机器配置: 执行 ...