C# 生成二维码(带Logo)
C# 生成二维码(带Logo)
第一种方式
我们需要引用 ThoughtWorks.QRCode.dll 生成带logo二维码(framework4.0以上)
下载地址:https://pan.baidu.com/s/1mBjd7PHB-Klybx18Z5Og8A
提取码: ugwa
/// <summary>
/// 创建二维码
/// </summary>
/// <param name="content">内容</param>
/// <returns></returns>
public static Bitmap CreateQRCode(string content)
{
try
{
QRCodeEncoder qrEncoder = new QRCodeEncoder();
//二维码类型
qrEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//二维码尺寸
qrEncoder.QRCodeScale = ;
//二维码版本
qrEncoder.QRCodeVersion = ;
//二维码容错程度
qrEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
//字体与背景颜色
qrEncoder.QRCodeBackgroundColor = Color.White;
qrEncoder.QRCodeForegroundColor = Color.Black;
//UTF-8编码类型
Bitmap qrcode = qrEncoder.Encode(content, Encoding.UTF8); return qrcode;
}
catch (Exception)
{
return null;
}
}
创建二维码
/// <summary>
/// 生成带logo二维码
/// </summary>
/// <returns></returns>
public static Bitmap CreateQRCodeWithLogo(string content, string logopath)
{
//生成二维码
Bitmap qrcode = CreateQRCode(content);
//生成logo
Bitmap logo = new Bitmap(logopath);
//合成
ImageUtility util = new ImageUtility();
Bitmap finalImage = util.MergeQrImg(qrcode, logo);
return finalImage;
}
生成带Logo的二维码
/// <summary>
/// 保存二维码
/// </summary>
/// <param name="QRCode">二维码图片</param>
/// <param name="SavePath">保存路径</param>
/// <param name="QRCodeName">图片名称</param>
public static void SaveQRCode(Bitmap QRCode, string SavePath, string QRCodeName)
{
if (!Directory.Exists(SavePath))
{
Directory.CreateDirectory(SavePath);
}
QRCode.Save(Path.Combine(SavePath, QRCodeName + ".png"), ImageFormat.Png); QRCode.Dispose();
}
保存二维码
第二种方式
我们需要引用 Gma.QrCodeNet.Encoding.Net45.dll (framework4.5以上)支持中文
下载地址:https://pan.baidu.com/s/1TKMwdWHYhTp_fJnTYHKnsQ
提取码: eqjh
// <summary>
/// 生成保存二维码(framework4.5以上)
/// </summary>
/// <param name="CodeString"></param>
/// <param name="PicName"></param>
/// <param name="FilePath"></param>
public static void CreateQRCode(string CodeString, string PicName, string FilePath)
{
QrEncoder qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
QrCode code = new QrCode();
qrEncoder.TryEncode(CodeString, out code);
const int modelSizeInPixels = ; GraphicsRenderer render = new GraphicsRenderer(new FixedModuleSize(modelSizeInPixels, QuietZoneModules.Two)
, Brushes.Black, Brushes.White);
if (!Directory.Exists(FilePath))
{
Directory.CreateDirectory(FilePath);
}
string filename = FilePath + "\\" + PicName + ".png";
using (FileStream stream = new FileStream(filename, FileMode.Create))
{
render.WriteToStream(code.Matrix, ImageFormat.Png, stream);
}
}
生成并保存二维码
C# 生成二维码(带Logo)的更多相关文章
- (转)js jquery.qrcode生成二维码 带logo 支持中文
场景:公司最最近在开发二维码支付业务,所以需要做一个html5中的二维码生成和部署! 前天用js生成二维码,节省服务器资源及带宽 原版jquery.qrcode不能生成logo,本文采用的是修改版 1 ...
- jquery.qrcode 生成二维码带logo
<div id="container">这里是二维码显示位置</div> <script language="JavaScript" ...
- jquery动态生成二维码添加自定义logo
动态生成二维码中间带logo. jquery.qrcode.js 动态生成二维码api很简单. 引入jquer(版本任意),引入jquery.qrcode.js 不需要中间带logo这样就可以了.带l ...
- vue生成条形码/二维码/带logo二维码
条形码:https://blog.csdn.net/dakache11/article/details/83749410 //安装 cnpm install @xkeshi/vue-barcode / ...
- spring boot:用zxing生成二维码,支持logo(spring boot 2.3.2)
一,zxing是什么? 1,zxing的用途 如果我们做二维码的生成和扫描,通常会用到zxing这个库, ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库. zxing还可以 ...
- xamarin android 实现二维码带logo生成效果
MultiFormatWriter writer = new MultiFormatWriter(); Dictionary<EncodeHintType, object> hint = ...
- 使用jquery.qrcode生成二维码支持logo,和中文
/* utf.js - UTF-8 <=> UTF-16 convertion * * Copyright (C) 1999 Masanao Izumo <iz@onicos.co. ...
- C#使用Zxing2.0生成二维码 带简单中心LOGO
参考:http://www.open-open.com/lib/view/open1379214678162.html 代码:http://files.cnblogs.com/halo/%E4%BA% ...
- (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果
场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...
随机推荐
- spring+struts2+mybatis框架依赖pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- 安装repo
$ sudo apt-get install curl -y$ curl "http://android.git.linaro.org/gitweb?p=tools/repo.git;a=b ...
- 03008_ServletContext
1.什么是ServletContext? (1)ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象 内部封装是该web应用的信息,Servle ...
- LRESULT CALLBACK WndProc 窗口程序的 重点
LRESULT CALLBACK WndProc Windows程序所作的一切,都是回应发送给窗口消息处理程序的消息.这是概念上的主要难点之一,在开始写作Windows程序之前,必须先搞清楚. 窗口消 ...
- 从几率到logisitic函数
odds 几率,又称事件的优势比.几率和概率的关系如下: o=p1−pp=o1+o Logistic 回归模型的因变量只有 1/0 两种取值.假设在 p 个独立自变量 x1,x2,…,xp 作用下,记 ...
- [python][oldboy]关键字参数和位置参数,默认参数,可变长参数(无名,有名)
关键字参数和位置参数是在函数调用的时候定义 关键字参数是以键-值对出现,无序,多一个不行,少一个不行 位置参数,有序,多一个不行,少一个不行 混搭:所有位置参数必须在关键字参数的左边 默认参数是在函数 ...
- struts2和spring的两种整合方式
首先,来看看如何让Spring 来管理Action. 在struts.xml中加入 <constant name="struts.objectFactory" value=& ...
- 九度oj 题目1465:最简真分数
题目描述: 给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合. 输入: 输入有多组,每组包含n(n<=600)和n个不同的整数,整数大于1且小于等于1000. ...
- 【转】hibernate延迟加载和抓取策略
一.延迟加载 1.简单查询get,load 针对对象本身延迟或即时 当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.load ...
- Welcome-to-Swift-15反初始化(Deinitialization)
在一个类的实例被释放之前,反初始化函数被立即调用.用关键字deinit来标示反初始化函数,类似于初始化函数用init来标示.反初始化函数只适用于类类型. 反初始化原理 Swift会自动释放不再需要的实 ...