vb.net+zxing.net随机彩色二维码、条形码

需要zxing库支持ZXing.NET Generate QR Code & Barcode in C# Alternatives | IronBarcode

效果图:

思路:先生成1个单位的二维码,然后再通过像素填充颜色,颜色数组要通过洗牌算法

洗牌算法

Dim shuffledCards As New List(Of Color)Sub GenColor()shuffledCards.Clear()Dim cards() = {Color.Red, Color.Blue, Color.Green,  Color.Black, Color.Brown}For i = 0 To 40shuffledCards.AddRange(ShuffleArray(cards))NextEnd Sub' Fisher-Yates洗牌算法实现  Function ShuffleArray(ByVal array() As Color) As Color()Dim currentIndex As Integer = array.LengthDim random As New Random()' 当还剩有元素未洗牌时  While currentIndex > 0' 选取一个0到currentIndex之间的随机索引  Dim randomIndex As Integer = random.Next(currentIndex)currentIndex -= 1' 交换当前元素和随机索引处的元素  Dim temp As Color = array(currentIndex)array(currentIndex) = array(randomIndex)array(randomIndex) = tempEnd While' 返回洗牌后的数组  Return arrayEnd Function

色块识别、填充算法(二维码的生成):

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickDim qr = New Bitmap(GenByZXingNet_Color(Content.Text))If CBRandColor.Checked = True ThenGenColor()Dim k As IntegerFor i = 0 To qr.Height - 1For j = 0 To qr.Width - 1Dim c = qr.GetPixel(j, i)If CInt(c.R) + CInt(c.G) + CInt(c.B) = 0 Thenqr.SetPixel(j, i, shuffledCards(k))End Ifk += 1If k > shuffledCards.Count - 1 Thenk = 0End IfNextNextEnd IfDim zk As Integer = CInt(ZoomK.Value)Dim NewQr = New Bitmap(qr.Width * zk, qr.Height * zk)For i = 0 To qr.Height - 1For j = 0 To qr.Width - 1Dim c = qr.GetPixel(j, i)Dim g = Graphics.FromImage(NewQr)g.FillRectangle(New SolidBrush(c), New Rectangle(j * zk, i * zk, zk, zk))NextNextDestImg.Image = NewQr
End Sub
Public Shared Function GenByZXingNet_Color(ByVal msg As String, ByVal Optional codeSizeInPixels As Integer = 250) As BitmapDim writer As BarcodeWriter = New BarcodeWriter()'writer.Renderer = New ZXing.Rendering.BitmapRenderer With {'        .Background = Color.White,'       .Foreground = Color.Black'   }writer.Format = BarcodeFormat.QR_CODE'writer.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8")'writer.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H)writer.Options.Height = 1writer.Options.Width = 1writer.Options.Margin = 0Dim img As Bitmap = writer.Write(msg)Return img
End Function

条形码的生成

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.ClickDim options = New ZXing.Common.EncodingOptions()'options.Height = 120'options.Width = 200Dim Writer = New ZXing.BarcodeWriter()'writer.Options = optionsWriter.Format = ZXing.BarcodeFormat.CODE_128Dim qr = Writer.Write(Content.Text)DestImg.Image = qr
End Sub

保存

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.ClickDim save As New SaveFileDialogsave.Filter = "PNG File|*.png|JPG File|*.jpg|BMP File|*.bmp|All File|*.*"save.Title = "选择保存位置"save.FileName = Content.TextIf save.ShowDialog() = DialogResult.OK ThenDestImg.Image.Save(save.FileName)End IfEnd Sub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客NC278 删除链表中重复的结点【中等 链表 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef 这题有一次面试某团的第一道题 思考 链表的基本操作参考答案Java import java.util.*; /*public class ListNode {int val;ListNode next null;ListNode(int val) {this.v…

【Linux杂货铺】进程的基本概念

目录 🌈前言🌈 📁进程的概念 📂描述进程-PCB 📂 查看进程 📂 查看正在运行的程序 📂杀死进程 📂通过系统调用获取进程标识符 📂通过系统调用创建进程 &#x1f…

初阶结构体

在这篇文章中我们只讲一些结构体的一些基础的知识,后续会继续补充关于结构体的高阶知识。 1.结构体声明 1.1结构体的基本知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构可以用来描述复杂对象,在…

day10-SpringBootWeb案例-1

一、准备工作 1 需求&环境搭建 步骤: 准备数据库表(dept、emp)创建 springboot 工程,引入对应的起步依赖(web、mybatis、mysql 驱动、lombok)配置文件 application.properties 中引入 mybatis 的配置信息,准备对应…

CI/CD实战-gitlab代码仓库 2

gitlab安装部署 实验虚拟机最小需求:4g内存,4核cpu 下载源:Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 安装依赖性: 安装软件: 修改依赖性配置文件 重新自动化配置 登录…

快速排序(数据结构)

1. 前言: 这两种排序经常使用,且在算法题中经常遇见。 这里我们简单分析讨论一下。 1. 快速排序 平均时间复杂度:O(nlogn) 最坏时间复杂度: O(n^2) 1.1. 左右向中遍历: 取最右侧4…

HarmonyOS NEXT应用开发—发布图片评论

介绍 本示例将通过发布图片评论场景,介绍如何使用startAbilityForResult接口拉起相机拍照,并获取相机返回的数据。 效果图预览 使用说明 通过startAbilityForResult接口拉起相机,拍照后获取图片地址。 实现思路 创建CommentData类&#…

腾讯云轻量应用服务器2核4G5M代表什么意思?

腾讯云服务器2核4G5M带宽配置是代表什么?代表2核CPU、4G内存、5M公网带宽,这是一款轻量应用服务器,系统盘为60GB SSD云硬盘,活动页面 txybk.com/go/txy 活动打开如下图: 腾讯云2核4G5M服务器 如上图所示,这…

HCIA——TCP协议详解

目录 1、TCP概念及协议头部格式 1.1TCP特点 1.2TCP协议协议头部格式 1.3字段进行介绍 1.3.1源端口和目的端口 1.3.2序号(seq) 1.3.3确认序号(ack) 1.3.4数据偏移 1.3.5标志位 1.3.6窗口 1.3.7校验和 1.3.8紧急指针 2、TCP的可靠性 2.1 TCP可靠性的保障 2.2排序机…

Android Studio实现内容丰富的安卓博客发布平台

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 项目编号078 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看博客列表 3.查看博客详情 4.评论博客, 5.…

HBase在表操作--显示中文

启动HBase后,Master和RegionServer两个服务器,分别对应进程为HMaster和HRegionServe。(可通过jps查看) 1.进入表操作 hbase shell 2.查看当前库中存在的表 list 3.查看表中数据(注:学习期间可用&#…

将FastSAM中的TextPrompt迁移到MobileSAM中

本博文简单介绍了SAM、FastSAM与MobileSAM,主要关注于TextPrompt功能的使用。从性能上看MobileSAM是最实用的,但其没有提供TextPrompt功能,故而参考FastSAM中的实现,在MobileSAM中嵌入TextPrompt类。并将TextPrompt能力嵌入到MobileSAM官方项目提供的gradio.py部署代码中,…

【JVM】生产内存占用异常优化 (一)

记录一次 - 内存占用优化 某个导出,导出数据量过大总是导致OOM,但是根据需求,导出数据大小并没有那么大 按照导出数据的查询来看 SELECTg.inventory_code,g.visit_record_code,g.recovery_price AS transactionAmount FROM crm_goods g ...…

小迪安全41WEB 攻防-通用漏洞XMLXXE无回显DTD 实体伪协议代码审计

#知识点: 1、XML&XXE-原理&发现&利用&修复等 2、XML&XXE-黑盒模式下的发现与利用 3、XML&XXE-白盒模式下的审计与利用 4、XML&XXE-无回显&伪协议&产生层面 #思路点: 参考:https://www.cnblo…

Linux 块设备驱动

Linux 三大驱动分别是:字符设备驱动、块设备驱动、网络设备驱动。 块设备是针对存储设备的,比如 SD 卡、EMMC、NAND Flash、Nor Flash、SPI Flash、机械硬盘、固态硬盘等。因此块设备驱动其实就是这些存储设备驱动,块设备驱动相比字符设备驱…

CentOS 7 编译安装 Git

CentOS 7 编译安装 Git 背景来源删除旧版本 Git安装依赖包下载 Git 源代码检验相关依赖,设置安装路径编译安装添加 Git 环境变量重新加载配置文件查看版本号参考文献 背景来源 为什么要安装新版本呢? 因为无聊,哈哈哈,其实也不是…

Linux下进程的调度与切换

🌎进程的调度与切换 文章目录: 进程的调度与切换 进程切换 进程调度       活动状态进程队列       位图判断       过期队列 总结 前言: 在Linux操作系统中,进程的调度与切换是操作系统核心功能之一&#xff…

【JACS】:用于稳定单原子分散的催化剂架构可对吸附到 Pt 原子、氧化 Pt 簇和 TiO2上金属 Pt 簇的 CO 进行特定位点光谱和反应性测量

摘要:氧化物负载的贵金属纳米粒子是广泛使用的工业催化剂。由于费用和稀有性,开发降低贵金属纳米颗粒尺寸并稳定分散物质的合成方案至关重要。负载型原子分散的单贵金属原子代表了最有效的金属利用几何结构,尽管由于合成均匀且稳定的单原子分…

《论文阅读》E-CORE:情感相关性增强的移情对话生成 EMNLP 2023

《论文阅读》E-CORE:情感相关性增强的移情对话生成 EMNLP 2023 前言摘要模型架构图构建边的构建和初始化节点的初始化图更新情感相关性加强解码损失函数总结前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来…

2.3 性能度量

目录 2.3.1 错误路和精度 2.3.2 查准率,查全率与F1 2.3.4 代价敏感错误率与代价曲线 对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure).性能度量反映了任务需求,…