iOS ZBarSDK 用ZBarReaderView自定义二维码扫描界面

RV1126笔记四十:基于Zbar的二维码识别 为什么写二维码识别,二维码识别在日常生活中很常见到。相关的领域有很多,这里介绍一下,Wi-Fi 智能硬件配网什么是配网狭义上配网是指 WiFi 终端设备获取路由器的 SSID/password 等信息并与路由器建立链接的过程。实际上还有一个绑定的过程,即将设备与账户发送到云端进行绑定。1、一键配网(smart config)2、设备热点配网(AP 配网)3、蓝牙配网4、其他(语音识别/扫码识别)这里的扫码识别大部分为二维码识别,在嵌入式中常用的是Zbar.1、ZBar是什么。 阅读详情

ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打开一个扫描界面,另一种方式是使用ZBar提供的可以嵌在其他视图中的ZBarReaderView,实际项目中我们更可能会使用第二种方式,这可以让我们对界面做更多的定制。

ZBar使用起来也非常简单,将ZBarSDK导入项目,在需要使用ZBar的文件中导入ZBarSDK.h头文件即可,以下是ZBarReaderView的初始化方法:

ZBarReaderViewreaderView = [[ZBarReaderViewalloc]init];
readerView.frame = CGRectMake(0, 44,self.view.frame.size.width,self.view.frame.size.height - 44);
readerView.readerDelegate = self;
//关闭闪光灯
readerView.torchMode = 0;
//扫描区域
CGRectscanMaskRect = CGRectMake(60,CGRectGetMidY(readerView.frame) - 126, 200, 200);
    
//处理模拟器
if (TARGET_IPHONE_SIMULATOR) {
   ZBarCameraSimulator *cameraSimulator 
       = [[ZBarCameraSimulatoralloc]initWithViewController:self];
   cameraSimulator.readerView = readerView;
}
[self.view addSubview:readerView];
//扫描区域计算
readerView.scanCrop = [selfgetScanCrop:scanMaskRectreaderViewBounds:self.readerView.bounds];

[readerView start];

以上代码需要说明的有以下几点:

  1. 闪光灯设置
    我不希望在扫描二维码时开启闪光灯,所以将ZBarReaderView的torchMode设为0,你可以将它设置为其他任何合适的值。
  2. 扫描区域计算
    这点比较重要,我们常用的二维码扫描软件的有效扫描区域一般都是中央区域,其他部分是不进行扫描的,ZBar可以通过ZBarReaderView的scanCrop属性设置扫描区域,它的默认值是CGRect(0,0, 1,1),表示整个ZBarReaderView区域都是有效的扫描区域。我们需要把扫描区域坐标计算为对应的百度分数坐标,也就是以上代码中调用的getScanCrop:readerViewBounds方法,亲测没有问题,如下所示:

 

-(CGRect)getScanCrop:(CGRect)rectreaderViewBounds:(CGRect)readerViewBounds
{
    CGFloatx,y,width,height;
    
   x = rect.origin.x / readerViewBounds.size.width;
   y = rect.origin.y / readerViewBounds.size.height;
   width = rect.size.width / readerViewBounds.size.width;
   height = rect.size.height / readerViewBounds.size.height;
    
   return CGRectMake(x,y, width, height);
}

PS:在网上找到很多这个方法都是将横坐标和纵坐标交叉,这样是有问题的,仔细想一下就会明白。

初始化部分完成之后,就可以调用ZBarReaderView的start方法开始扫描了,需要让你的类实现ZBarReaderViewDelegate协议,在扫描到二维码时会调用delegate的对应方法。最后,当二维码已经识别时候,可以调用ZBarReaderView的stop方法停止扫描。如下所示:

- (void)readerView:(ZBarReaderView *)readerViewdidReadSymbols:(ZBarSymbolSet *)symbolsfromImage:(UIImage *)image
{
   for (ZBarSymbol *symbol in symbols) {
       NSLog(@"%@", symbol.data);
       break;
    }
    
   [self.readerView stop];
}
基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇)软硬件参数调试 基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第二篇) 本文内容大部分来自Kris,我们的K大,在VTOL领域的大牛,在此,非常感谢K大。能引用K大的成果也是自己的荣幸,不便之处还请K大多多包涵,在此引用只是为方便自己日常学习,部分参数表里根据自身情况,增加了修改环节和相应参数。 垂直起降固定翼 中文教程-参数设置 垂直起降固定翼是由 多轴+... 阅读详情

相关推荐

人类肠道微生物群落代谢建模

MICOMWeb 是款用户友好型网站,专为人类肠道微生物群落代谢建模设计。该网站旨在解决基因组尺度代谢模型(in silico)构建过程中的3大限制:① 使用 MICOM Python 包进行通量平衡分析时对用户 Python 编程知识的要求;② 支持预定义和用户自定义饮食,以生成专属代谢模型;③ 处理宏基因组鸟枪法测序或 16S 扩增子测序获得的真实丰度数据时,所需的高通量计算基础设施。本文展示了 MICOMWeb 的核心功能,用户可轻松开展虚拟实验,为3个已发表数据集的实验验证生成功能性假设。

多组・学・多组学 1169

ZBar二维码扫描

ZBar是一个开源库,用于扫描、读取二维码和条形码。支持的二维码包括:EAN/UPC,QR等。可以扫描含有链接的二维码,并且读取到结果后直接跳转到对应的链接。 调试中出现。 本次学习做了两个功能,一个是对二维码的扫描,另一个是生成二维码。 对二维码扫描要在真机测试。 要添加的库 QuartzCore.framework/CoreVideo.framework/Core

学习笔记 4675

宇树GO2-YOLOv5在Jetson Orin上的部署避坑实践

本文详细记录了在宇树GO2四足机器人搭载的Jetson Orin平台上部署YOLOv5目标检测模型的完整实践过程。文章重点分享了从ARM架构认知、网络连接解决方案、Archiconda环境搭建、PyTorch版本精准匹配到依赖安装与性能验证的核心步骤与避坑指南,旨在帮助开发者高效完成边缘计算环境下的算法部署。

app77的博客 669

使用zbar库识别条形码与二维码

QR 码是一种高密度矩阵条码,Quirc是一个基于C/C++的一个二维码库 ,从图像中提取和解码QR 码。其部分功能还需依赖OpenCV库共同实现,比如quirc-demo-opencv(即图形的显示);inspect-opencv(测试)。1.足够快,可以用于实时视频:在现代x86内核上,从VGA帧提取和解码大约需要50毫秒。2.具有鲁棒且宽容的识别算法。可以正确识别和解码旋转和/或倾斜于相机的QR码。它还可以区分和解码同一图像中的多个代码。

m0_74259636的博客 7851

如何用Lmcache+vllm优化KVcache存储?CPU与SSD性能实测对比

本文通过实测对比,详细介绍了如何利用Lmcache+vLLM将大模型推理中的KV Cache卸载至CPU内存或SSD硬盘,以解决长上下文场景下的GPU显存瓶颈。测试数据显示,CPU卸载方案在首字延迟(TTFT)上显著优于SSD方案,但SSD方案在存储成本上更具优势。文章提供了完整的配置指南、性能数据分析和生产环境选型建议。

fire9的博客 985

第4章-07-将WebDriver获取的Cookie传递给Requests

在使用Selenium WebDriver获取了浏览器的Cookies之后,你可以将这些Cookies传递给requests库,以便在后续的HTTP请求中使用这些Cookies。这样做可以让你模拟浏览器会话,使得请求看起来像是从之前使用Selenium WebDriver控制的浏览器发出的。

黑夜开发者的博客 692

ZBar扫描二维码第三方的使用方法

最近在做的项目中需要用到二维码扫描功能,之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用。 ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController

操作猛如虎的博客 1662

AUTOSAR知识点 之 XCP (二):XCP基础概念

学习XCP的过程中,对XCP的基本概念要做一个全面的认知,因为里面有很多缩写以及难以理解的点,假设对此模模糊糊一知半解,那么对整个协议栈的认知会遇到极大的障碍。XCP的信号流传输图示如下XCP 标准主要分为 5 个部分:这部分提供了对于协议的一个概况介绍,包括 XCP 的功能和基础性内容。这部分内容对协议层进行了详细的规范和说明。

梦想技术家 2769

IOS 自定义ZbarSDK扫描界面

#1引用ZbarSDK *1)到ZbarSDK开源Github下载zip文件,https://github.com/arciem/ZBarSDK *2)使用Xcode4.6.3建立一个single view application project,项目名为"iOS自定义zbarsdk扫描界面"       (为方便测试,使用Xcode4.6.3,如果使用Xcode5以上版本的要注

Manson.7230 5447

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 195

【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤

Windows 11 安装 WSL2 和 Ubuntu 22.04 指南 本文详细介绍在 Windows 11 上安装 WSL2 和 Ubuntu 22.04 的完整步骤,包括: WSL2 与 VirtualBox 的性能对比优势 系统版本检查与升级方法 两种安装方式(一键安装和手动安装) Ubuntu 22.04 的安装与配置 存储位置管理及迁移技巧 常用 WSL2 命令速查表 文章还提供了性能优化建议和常见问题解决方案,适合开发者和 Linux 爱好者快速搭建高效的开发环境。

No8g攻城狮的博客 2万+

基于ZBard的二维码扫描

基于ZBard的二维码扫描

Nick_since2016的博客 618

UDS诊断服务基础详解之二19服务

本文主要介绍UDS统一诊断服务的19 01服务,包含状态位和故障码的解析以及19 01服务的具体说明

车载网络小D的博客 1万+

Zbar SDK

ZBar SDK有两种使用方式: 1)直接调用 ZBarReaderViewController 打开一个扫描界面; 2)ZBar SDK提供的可以嵌入其他视图的ZBarReaderView(建议使用该方式,高度可自定义界面); 协议ZBarReaderViewDelegate 实现delegate

hk1206的专栏 458

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

二维码扫描之ZBarSDK使用详解

二维码扫描之ZBarSDK使用详解 一、简要说明 ZBarSDK集成了扫描二维码以及条形码功能。在iOS7.0之前iOS没有提供原生的二维码及条形码扫描功能,若要兼容iOS7.0之前的设备的话ZBarSDK是最佳选择。 二、集成方式 1、通过Cocoapods 将 pod 'ZBarSDK' 添加到Podfile文件中,然后在终端执行命令pod install在要使用的类

zyk5219的博客 2035

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ZBar 二维码扫描,

近在做的项目中需要用到二维码扫描功能,之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用。 ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打

积土成山 积水成渊 5331

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

二维码扫描

二维码扫描,AVFoundation,ZBar,

qq_32510689的博客 3305

二维码框架ZBarSDK的使用和自定义二维码扫描界面方法

这是一个基于ZBarSDK的二维码扫描,完全自定义界面,简单实用,漂亮

狮子座的男人 1万+

iOS中使用ZBar扫描二维码自定义扫描界面

之前在Android中使用过ZXing识别二维码,ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件,并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进行二维码识别,它的注释清晰,便于使用。 ZBar为我们提供了两种使用方式,一种是直接调用ZBar提供的ZBarReaderViewController打开一个扫描界面,另一种方式是使用ZBa

zz_mm的专栏 1万+

IOS几种常见的实现扫描、生成二维码的方式(一、使用ZBar SDK)

IOS中的几种常见的扫描二维码方式(一、使用ZBar SDK)

jaybin的技术博客 7216

在iOS中使用ZBar扫描二维码和条形码

准备工作:

刘锦的专栏 1224

条形码,二维码扫描

条形码扫描的功能终于实现了,写此笔记以供自己复习之用,也能够帮助一些向我一样刚开始做IOS,刚开始熟悉二维码扫描功能的学习。做出来了,回头一看,其实很容易。非常感谢Oran的指点,是他让我能够快速的学会zbarsdk的使用方法。同时也教会了我怎么学习新知识的方法。 条形码、二维码扫描 sdk 已经封装好了实现的功能,我们要做的只是简单的几句代码就OK。 首先说一下原理,只有懂了原理才会

辰风的专栏 934

二维码扫描ZBarSDK的使用

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目。 3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项 4.在项目文件的target中加入 以下framework 5.在appDelegate文件中加入 标记部分的代码 [cpp] v

NYH1006的专栏 1319
上一篇: 初探coreText
下一篇: App store最新审核标准(2015.3)公布
光速之年
博客等级 码龄12年 31粉丝 97原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值