C# vb .NET生成QR二维码
二维码比条形码具有更多优势,有些场合使用二维码比较多,比如支付。通过将某些数据生成二维码,就可以实现一码走天下。那么如何在C#,.Net平台代码里生成二维码呢?答案是使用SharpBarcode!
SharpBarcode是C#快速高效、准确的条形码,线性条码,QR二维码的读取和生成类库。接口调用简单,文档齐全。
初识SharpBarcode
您可以点击下面的链接了解更多信息:
1、SharpBarcode简介
2、一张图看懂SharpBarcode
生成二维码
从上面的两篇文章中,相信您已经大概了解了该类库。那么如何实现生成二维码呢?对!就是BarcodeWriteEngine的静态方法!
该类可以同时生成条形码和QR二维码,生成QR二维码的方法就是CreateQrCode及其重载方法。
设置授权码
在您调用SharpBarcode的方法之前,必须先设置授权,如果是试用版,直接传入Test即可。
//设置授权码
KeyMgr.SetKey("Test");
调用BarcodeWriteEngine的静态方法CreateQrCode
SharpBarcode支持将字符串以及二进制字节流作为内容,写入二维码。
这里演示将字符串生成一个二维码。同时SharpBarcode支持对生成的条形码或者二维码进行样式调整,比如背景色、条码的颜色、添加边距、设置宽高大小等等。
也支持对生成的结果进行多种格式的保存和导出。比如保存为Bitmap类对象,或者是jpg、png、bmp、tiff、gif、pdf等格式文件,或者DataURL,html等格式。这些都是通过GeneratedBarcode类的方法来实现的。
GeneratedBarcode类是生成条形码和二维码的一个核心类,BarcodeWriteEngine的任何一个方法,无论是生成的条形码,还是QR二维码,都是返回GeneratedBarcode类型。您可以通过GeneratedBarcode类的方法调整后,进行导出和保存。
//将指定的字符串,按照指定大小生成qr二维码,结果保存到GeneratedBarcode类中.CreateQrCode有许多重载,可以满足您的多样化需求
GeneratedBarcode result = BarcodeWriteEngine.CreateQrCode("SharpBarcode,专业的.NET条形码和QR二维码读写类库SDK.", 350);
//GeneratedBarcode类提供了丰富的接口,可以用来对生成的结果进行
//调整,比如调整背景颜色,添加边距,加注释等,也可以将生成的结果以多种方式保存,比如保存为图片,保存为html,保存为pdf,保存为
//dataURL等。
pictureBox1.Image = result.ToBitmap();
MessageBox.Show("下面开始对生成的二维码调整背景色");
result.ChangeBackgroundColor(Color.AliceBlue);
pictureBox1.Image = result.ToBitmap();
MessageBox.Show("下面开始对生成的二维码调整二维码颜色");
result.ChangeBarCodeColor(Color.Red);
pictureBox1.Image = result.ToBitmap();
MessageBox.Show("下面开始对生成的二维码调整大小");
result.ResizeTo(250,250);
pictureBox1.Image = result.ToBitmap();
MessageBox.Show("下面开始对生成的二维码设置边距");
result.SetMargins(50);
pictureBox1.Image = result.ToBitmap();
MessageBox.Show("下面开始对生成的二维码转换为dataUrl字符串");
MessageBox.Show(result.ToDataUrl());
MessageBox.Show("下面开始对生成的二维码转换为html img标签");
MessageBox.Show(result.ToHtmlTag());
MessageBox.Show("下面开始对生成的二维码保存为jpg图片");
if(saveFileDialog1.ShowDialog() == DialogResult.OK)
{
result.SaveAsJpeg(saveFileDialog1.FileName);
MessageBox.Show("已保存!");
}
程序运行结果如下图:
下载示例源码
C# vb .NET生成QR二维码的更多相关文章
- pbfunc外部函数扩展应用-直接在Datawindow中生成QR二维码,非图片方式
利用pbfunc外部函数在Datawindow中直接生成QR二维码,非图片方式.需要注意以下面几点: Datawindow的DataObject的单位必须为像素(Pixels). Datawindow ...
- Google API快速生成QR二维码
Google API快速生成QR二维码 现在来说生成二维码最简单的方法是使用Google Chart API来实现,再次膜拜Google大神- Google Chart API是一套可以让你在线生成报 ...
- ThoughtWorks.QRCode 生成QR二维码时提示“索引超出了数组界限”的原因和解决方法
"索引超出了数组界限"也有可能确实是因为你选择的二维码Version对应的容量不足以存储你所放的内容,如果你确定使用的版本容量二维码能存储你的内容,但还是报错,那么再考虑此解决方法 ...
- [AX2012 R3]在SSRS报表中使用QR二维码
AX2012是自带生成QR二维码的类,可以很方便的用在SSRS报表中,下面演示如何在RDP的报表中使用二维码,首先从定义临时表开始: 字段URL是要用于二维码的字符串,QrCode是container ...
- Android应用--QR的生成(二维码)
二维码的定义: 二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的. 在许多种类的二维条码中,常用的码制 ...
- C# vb .NET识别读取QR二维码
二维码比条形码具有更多优势,有些场合使用二维码比较多,比如支付.那么如何在C#,.Net平台代码里读取二维码呢?答案是使用SharpBarcode! SharpBarcode是C#快速高效.准确的条形 ...
- c#高效准确的条形码、线性条码、QR二维码读写类库-SharpBarcode介绍
SharpBarcode是一款支持.NET(C#,VB)的高效易用的条形码.QR二维码的读取和生成类库. 主要功能: 1.支持几乎所有常见类型的线性条形码和QR二维码的读取,高效读取,准确率高. 2. ...
- QR 二维码总结
@(Java ThirdParty)[QR] QR 二维码总结 根据Wiki中的介绍,QR Code(Quick Response Code),二维条形码,由日志设计应用于汽车制造工业中.条形码中包含 ...
- 【转】Delphi+Halcon实战一:两行代码识别QR二维码
Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ号应原作者要求隐藏了:xxxx6348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.co ...
随机推荐
- HashMap框架源码深入解读,面试不用愁
在Java Collections Framework的体系中中,主要有两个重要的接口,一个是List.Set和Queue所属的Collection,还有一个就是Map接口了.在上一篇文章中介绍了Li ...
- Java生鲜电商平台-用户管理的架构与实战
Java生鲜电商平台-用户管理的架构与实战 在电商后台中,用户管理是运营人员管理用户的模块.这里的用户区别于运营人员,会在权限的角色管理中分别阐述.这里的用户包含平台的一般用户,会员用户等.本文将分享 ...
- CVE-2019-0708-BlueKeep漏洞复现
环境 攻击机:Kali Linux IP:192.168.0.108 靶机:Windows Sever 7 SP1 旗舰版 IP:192.168.0.109 Exploit: https://gith ...
- [UIApplication sharedApplication].keyWindow.rootViewController
一般来说 [UIApplication sharedApplication].keyWindow.rootViewController 会在 appDelegate 中初始化,并且整个应用运行过程中都 ...
- LayoutSubviews的调用
1.当view被添加到另一个view上时调用 2.布局子控件时调用 3.屏幕旋转的时候调用 4.当view的尺寸大小改变的时候调用
- JDK10源码分析之HashMap
HashMap在工作中大量使用,但是具体原理和实现是如何的呢?技术细节是什么?带着很多疑问,我们来看下JDK10源码吧. 1.数据结构 采用Node<K,V>[]数组,其中,Node< ...
- [Go] 利用有缓存channel控制同时并发的数量
如果有一个大循环,里面每一个都开启groutine,那么瞬间就会开启非常多的groutine,要解决这个问题就要用channel的阻塞特性来解决 package main import "t ...
- 九、Swift对象存储服务(双节点搭建)
九.Swift对象存储服务(双节点搭建) 要求:Controoler节点需要2块空盘 Compute节点需要再加2块空盘 本次搭建采用Controller 和 Compute双节点节点做swift组件 ...
- C C++ ARM X86 函数 方法 的调用约定
参考:https://bbs.pediy.com/thread-224583.htm 整理成表格方便查询 cdecl(C规范), stdcall(WinAPI默认), fastcall, ATPCS( ...
- cidr地址段
CIDR采用各种长度的"网络前缀"来代替分类地址中的网络号和子网号,其格式为:IP地址 = {<网络前缀>,<主机号>}.为了区分网络前缀,通常采用&quo ...