【VB.NET】利用 ZXing.Net 生成二维码(支持自定义LOGO)
有任何疑问请去我的新博客提出 https://blog.clso.fun/posts/2019-03-03/vb-net-zxing-net-qr-maker.html
ZXing .NET 的项目主页
https://github.com/micjahn/ZXing.Net
代码基本上抄袭自下面两篇文章 XD
http://www.cnblogs.com/tianma3798/p/5426869.html
http://www.cnblogs.com/tianma3798/p/5426880.html
仅作参数优化,更加实用和简便一点
, , ) As Bitmap Dim writer As New ZXing.BarcodeWriter writer.Format = ZXing.BarcodeFormat.QR_CODE Dim opt As New ZXing.QrCode.QrCodeEncodingOptions opt.DisableECI = True '设置为True才可以调整编码 opt.CharacterSet = "UTF-8" '文本编码,建议设置为UTF-8 opt.Width = width '宽度 opt.Height = height '高度 opt.Margin = margin '边距,貌似不是像素格式,因此不宜设置过大 writer.Options = opt Return writer.Write(qrtext) End Function , , ) As Bitmap If logo Is Nothing Then Return MakeQR(qrtext, width, height, margin) End If Dim writer As New ZXing.MultiFormatWriter Dim hint As New Dictionary(Of ZXing.EncodeHintType, Object)() hint.Add(ZXing.EncodeHintType.CHARACTER_SET, "UTF-8") hint.Add(ZXing.EncodeHintType.MARGIN, margin) hint.Add(ZXing.EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H) ' 生成二维码 Dim bm As ZXing.Common.BitMatrix = writer.encode(qrtext, ZXing.BarcodeFormat.QR_CODE, width, height, hint) Dim barcodeWriter = New ZXing.BarcodeWriter() Dim bmp As Bitmap = barcodeWriter.Write(bm) '获取二维码实际尺寸(去掉二维码两边空白后的实际尺寸) Dim rectangle As Integer() = bm.getEnclosingRectangle() '计算插入图片的大小和位置 ) / 3.5), logo.Width) ) / 3.5), logo.Height) '将img转换成bmp格式,否则后面无法创建Graphics对象 Dim bmpimg As New Bitmap(bmp.Width, bmp.Height, Imaging.PixelFormat.Format32bppArgb) Using g As Graphics = Graphics.FromImage(bmpimg) g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality g.CompositingQuality = Drawing2D.CompositingQuality.HighQuality g.DrawImage(bmp, , ) End Using '将二维码插入图片 Using myGraphic As Graphics = Graphics.FromImage(bmpimg) '白底 myGraphic.FillRectangle(Brushes.White, middleL, middleT, middleW, middleH) myGraphic.DrawImage(logo, middleL, middleT, middleW, middleH) End Using bmp.Dispose() Return bmpimg End Function Shared Function ReadQR(ByVal bmp As Bitmap) As String Dim reader As New ZXing.BarcodeReader reader.Options.CharacterSet = "UTF-8" Dim ret As ZXing.Result = reader.Decode(bmp) If ret Is Nothing Then Return Nothing Else Return ret.Text End If End Function
【VB.NET】利用 ZXing.Net 生成二维码(支持自定义LOGO)的更多相关文章
- 使用PHP生成二维码支持自定义logo
require_once 'phpqrcode/phpqrcode.php'; //引入类库 $text = "https://www.baidu.com/";//要生成二维码的文 ...
- 基于Asp.Net Core,利用ZXing来生成二维码的一般流程
本文主要介绍如何在.net环境下,基于Asp.Net Core,利用ZXing来生成二维码的一般操作.对二维码工作原理了解,详情见:https://blog.csdn.net/weixin_36191 ...
- C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(二)
1.使用ZXint.Net生成带logo的二维码 /// <summary> /// 生成带Logo的二维码 /// </summary> /// <param name ...
- 利用QrCode.Net生成二维码 asp.net mvc c#
利用QrCode.Net生成二维码 asp.net mvc c# 里面介绍了.net的方式及js的方式,还不错. 里面用到的qrcode.net的类库下载地址:https://qrcodenet.co ...
- 利用google api生成二维码名片
利用google api生成二维码名片 二维条码/二维码可以分为堆叠式/行排式二维条码和矩阵式二维条码.堆叠式/行排式二维条码形态上是由多行短截的一维条码堆叠而成:矩阵式二维条码以矩阵的形式组成,在矩 ...
- 使用jquery-qrcode在页面上生成二维码,支持中文
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- php--------php库生成二维码和有logo的二维码
php生成二维码和带有logo的二维码,上一篇博客讲的是js实现二维码:php--------使用js生成二维码. 今天写的这个小案例是使用php库生成二维码: 效果图: 使用了 php ...
- C#Qrcode生成二维码支持中文,带图片,带文字
C#Qrcode生成二维码支持中文带图片的操作请看二楼的帖子,当然开始需要下载一下C#Qrcode的源码 下载地址 : http://www.codeproject.com/Articles/2057 ...
- 利用Spring Boot+zxing,生成二维码还能这么简单
在网站开发中,经常会遇到要生成二维码的情况,比如要使用微信支付.网页登录等,本文分享一个Spring Boot生成二维码的例子,这里用到了google的zxing工具类. 本文目录 一.二维码简介二. ...
随机推荐
- soapui groovy脚本汇总
出处:https://www.jianshu.com/p/ce6f8a1f66f4 一.一些内部元件的访问 testRunner.testCase开头 1.向下访问 testRunner.testCa ...
- EasyUITree设置节点选中
function callback1(){ reloadMind(); LoadTree0($("); setTimeout(function(){ var node = $('#tt1') ...
- .net从网络接口地址获取json,然后解析成对象(一)
整理代码,今天遇到一个问题,就是从一个场景接口获取json,然后解析成对象.之前的时候都好好的,这次返回的json字符串里,由于字符编码的问题,格式上不能转换.一直以为是解析的过程编码有误,试了utf ...
- linux的!的用法
!的用法:1.!!:代表上一条命令,如下: 示例一: ./some-shell-command cat !! (相当于cat ./some-shell-command) 示例二: cd /user ! ...
- ManageEngine OMP帮助台委派
- servlet中请求转发获取数据等,,,
String uname= req.getParameter("uname"); 获取请求的字符串 req.setAttribute("str"," ...
- sqlserver的substring详细用法
SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的‘abd’给提取出来,则可用substring 来实现: select sub ...
- 关于上级机构的冲突性测试bug修复
描述: 1.上级机构可以为空. 2.机构添加时,选择了上级机构,在未提交前,另一用户将该机构删除,然后前一用户再提交表单,提示会保存成功,本操作应该保存失败. 思路:在上级机构不为空时,保存前进行查询 ...
- ssh scp 加端口
scp -P one-infrastructure-api.tar.gz console@172.31.16.2:/root/ ssh -p console@172.31.16.2
- 【终极答案】搭建selenium3.11 +Firefox+python3.6自动化UI测试环境踩的坑
1 运行之后,出现如下报错 Selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs ...