【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工具类. 本文目录 一.二维码简介二. ...
随机推荐
- 什么是DevOps?DevOps简明教程
我希望每个测试人员经过..功能测试-接口测试-安全测试-自动化测试-性能测试的洗礼后 都可以进入DevOps阶段.具体什么以及为什么 我稍后会给你大家讲解...
- 1.about
1)about Evarobot a.Evarobot Tech Specs 2)应用场景 Using a PC running visualisation/monitoring software a ...
- EasyUI DataGrid 获得分页信息
var b = $('#SBDiv_1_DateGrid').datagrid('options'); console.info(b); 具体需要哪些字段,可以通过火狐debug,然后自己找需要的信息 ...
- Python常见错误:IndexError: list index out of range
用python写脚本查询字典时,在遍历字典时循环到某一项时老是报错 出现这种错误有两种情况: 第1种可能情况 list[index]index超出范围 第2种可能情况 list是空值就会出现 In ...
- 矩阵快速幂小结-Hdu2604
矩阵快速幂可以想象为线性代数的矩阵相乘,主要是运用于高效的计算矩阵高次方. 将矩阵两两分组,若要求a^n,即知道a^(n/2)次方即可,矩阵快速幂便是运用的这个思路. 比方想求(A)^7那么(A)^6 ...
- GUI的优化操作/添加背景图片等
一.背景图片的添加这是JAVA中添加背景图片的方式,基本思路先建立一个Label标签,然后建立一个层次的布局,将label标签添加到最下面去. ImageIcon image=new ImageIco ...
- 34、iOS App图标和启动画面尺寸
注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的. 1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone ...
- jrebel热部署
一,JRebel 插件 获取与安装 1,JRebel 官网下载地址https://zeroturnaround.com/software/jrebel/download/#!/free-trial P ...
- Multiplexer
definition a device that selects one of several analog or digital input signals and forwards the se ...
- java socket之上传文件
一.功能介绍 该功能主要实现,将客户端的:F:/work/socketSample/filetemp/client/test_client.txt上传到服务端F:/work/socketSample/ ...