C#实现条形码识别

news/2025/1/16 15:23:46/
见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看......

1.使用Nuget安装第三方库

dotnet add package ZXing.Netdotnet add package ZXing.Net.Bindings.SkiaSharp

2.识别方法

public class BarcodeReaderService    {        public static string ReadBarcode(SKBitmap readerBitmap, BarcodeFormat barcodeFormat)        {            #region ZXing.NET 0.16.5            //var barcodeReader = new BarcodeReader();            #endregion            #region ZXing.NET 0.16.6 ~0.16.9            var luminanceSource = (Func<SKBitmap, LuminanceSource>)(bitmap => new ZXing.SkiaSharp.SKBitmapLuminanceSource(bitmap));            var barcodeReader = new BarcodeReader<SKBitmap>(null, luminanceSource, null);            #endregion             barcodeReader.Options.PossibleFormats = new List<BarcodeFormat>();            barcodeReader.Options.PossibleFormats.Add(barcodeFormat);            barcodeReader.AutoRotate = true;            barcodeReader.Options.TryHarder = true;            barcodeReader.Options.PureBarcode = false;            Result barcodeResult = null;            try            {                barcodeResult = barcodeReader.Decode(readerBitmap);            }            catch (Exception ex)            {            }            return barcodeResult==null ? string.Empty : barcodeResult.Text;        }    }

3.调用

using var readerQRCodeImage = SKBitmap.Decode(@"C:\Demo\Image\QRCode.png");string result = BarcodeReaderService.ReadBarcode(readerQRCodeImage, BarcodeFormat.QR_CODE);Console.WriteLine(result);            using var readerbarCodeImage = SKBitmap.Decode(@"C:\Demo\Image\Code28.png");result = BarcodeReaderService.ReadBarcode(readerbarCodeImage, BarcodeFormat.CODE_128);Console.WriteLine(result);

 

关注我,不失联。有啥问题请留言。

感情恋爱合集

职业发展故事

常用代码片段

程序开发教程

自我备考经验 


http://www.ppmy.cn/news/1563640.html

相关文章

力扣经典练习题之40,组合总和2

今天继续给大家分享一道力扣的做题心得今天这道题目是 40 &#xff0c;组合总和 题目如下&#xff0c;题目链接&#xff1a;40. 组合总和 II 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 c…

【PCIE734-1 】基于 PCIe 总线架构的 XCKU060 FPGA 4 路 SFP+光纤通道处理平台

产品概述 PCIE734-1 是一款基于 PCIE 总线架构的 Kintex UltraScale 系列 XCKU060 FPGA 高性能 4 路 SFP光纤数据处理平台。该平台具有 1 个 PCIe Gen3 x8 主机接口、4 个 SFP 10G 光纤接口&#xff0c;可以实现 4 路 SFP 10G 光纤的数据实时采集、处理、传输。板 卡 采 用 Xi…

CentOS 9 Stream 中查看 Python 版本并升级 Python

CentOS 9 Stream 中查看 Python 版本并升级 Python 1. 查看当前 Python 版本2. 升级 Python 版本&#xff08;1&#xff09;安装开发工具&#xff08;2&#xff09;安装必要的依赖包&#xff08;3&#xff09;下载和安装新版本的 Python&#xff08;4&#xff09;验证安装 3. …

【算法学习笔记】33:快速幂的递归及循环实现

快速幂原理 要计算 a b a^b ab&#xff0c; a b m o d p a ^ b~mod~p ab mod p&#xff0c;可以考虑用折半的方式缩小计算量。 例如要计算 2 13 2^{13} 213&#xff0c;只要计算 2 6 2^6 26乘以自己&#xff0c;再乘以一个多出来的2。 而要计算 2 6 2^6 26&#xff0c;只要计…

数据结构与算法之链表: LeetCode 146. LRU 缓存 (Ts版)

LRU 缓存 https://leetcode.cn/problems/lru-cache/description/ 描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 ke…

容器技术全面攻略:Docker的硬核玩法

文章背景 想象一下&#xff0c;一个项目终于要上线了&#xff0c;结果因为环境配置不一致&#xff0c;测试服务器一切正常&#xff0c;生产环境却宕机了。这是开发者噩梦的开始&#xff0c;也是Docker救世主角色的登场&#xff01;Docker的出现颠覆了传统环境配置的方式&#…

【kubernetes】K8S节点状态的维护

1 节点状态 节点是K8S集群中的一类重要资源&#xff0c;节点的状态通常可以作为判断集群异常的重要手段。 为了展示节点在各方面的健康程度&#xff0c;在kubectl describe node k8s-master的输出结果中的Conditions部分可以查看k8s-master节点的一些状态数据&#xff1a; N…

【Linux】8.Linux基础开发工具使用(2)

文章目录 1. Linux编译器-gcc/g使用关于sudo1.1 背景知识1.2 gcc如何完成1.2.1 预处理(进行宏替换)1.2.2 编译&#xff08;生成汇编&#xff09;1.2.3 汇编&#xff08;生成机器可识别代码&#xff09;1.2.4 连接&#xff08;生成可执行文件或库文件&#xff09;1.2.5 总结 1.3…