【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工具类. 本文目录 一.二维码简介二. ...
随机推荐
- ajax的基础
去年也是这个时候,开始学了ajax,也是这个技术领我走上了网页制作的道路,于是这样感觉到手写html比之前的dw拖拖拽拽要有意思得多. 话不多说,下面是一个例子: 这个是ajax显示页面:index. ...
- ubuntu14上安装nltk
安装nltk 1)在buntu终端命令键入:wget https://bootstrap.pypa.io/ez_setup.py,下载ez_setup.py. 2)下载完成后后,键入:sudo py ...
- SpringBoot中关于@Enable***的注解详解
出处:http://blog.csdn.net/qq_26525215 @EnableAspectJAutoProxy @EnableAspectJAutoProxy注解 激活Aspect自动代理 & ...
- 【Linux】DNS基础(一)
DNS基础 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址 ...
- Django的学习(六)————templates过滤器、Django shell、admin
一.filter: 1.介绍: 写在模板中,属于Django的模板语言. 可以修改模板中的变量,从而显示不同的内容 2.使用: {{ value | filter }},且过滤器可以嵌套使用 < ...
- 2019.01.20 bzoj2238: Mst(kruskal+树链剖分)
传送门 树链剖分菜题. 题意简述:给一个无向图,边有边权,每次询问删一条边(对后面的询问无影响)之后的最小生成树. 思路: 先跑一次kruskalkruskalkruskal并把跑出来的最小生成树给链 ...
- hdu-1394(线段树&逆序数的性质和求法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 题目大意: 给出一个序列,一对逆序数就是满足i<j&&a[i]>a[ ...
- 容器监控告警方案(cAdvisor + nodeExporter + alertmanager + prometheus +grafana)
一.prometheus基本架构 Prometheus 是一套开源的系统监控报警框架.它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 ...
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记十之铭文升级版
铭文一级: 第八章:Spark Streaming进阶与案例实战 updateStateByKey算子需求:统计到目前为止累积出现的单词的个数(需要保持住以前的状态) java.lang.Illega ...
- crontab使用环境变量
两种方式: 1)直接在crontab中定义变量,如: A=123 * * * * * echo $A > /tmp/a.txt 注意在定义变量时不能使用$引用其它变量,如下面的做法错误: A=1 ...