// 先要导入 AVFoundation.framework
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
//1.有个素材
@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>
//2.输入设备 采集摄像头捕捉到信息
@property (nonatomic, strong) AVCaptureDeviceInput *input;
//3.输出设备 解析输入设备采集到的信息
@property (nonatomic, strong) AVCaptureMetadataOutput *output;
//4.layer (特殊图层 能够展示摄像头采集到画面) 展示输入设备采集到的信息
@property (nonatomic, strong) AVCaptureVideoPreviewLayer *layer;
//5.关联输入设备和输出设备 : 会话
@property (nonatomic, strong) AVCaptureSession *session;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//1.创建输入设备
//AVCaptureDevice 设备 : 摄像头(video) 麦克风(audio)
//AVCaptureDeviceInput 输入设备 default 默认后置
//AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSArray *allDevice = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
self.input = [AVCaptureDeviceInput deviceInputWithDevice:[allDevice firstObject] error:nil];
//2.创建输出设备
self.output = [[AVCaptureMetadataOutput alloc]init];
//解析 -> 返回数据
//https://www.douniwan.com
//设置输出设备的代理 返回解析后的数据
[self.output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
//3.创建会话
self.session = [[AVCaptureSession alloc]init];
//4.关联 会话跟设备
if ([self.session canAddInput:self.input]) {
[self.session addInput:self.input];
}
if ([self.session canAddOutput:self.output]) {
[self.session addOutput:self.output];
}
//告诉数据类型 AVMetadataObjectTypeQRCode 二维码
self.output.metadataObjectTypes = @[AVMetadataObjectTypeQRCode];
//扫描框大小
[self.session setSessionPreset:AVCaptureSessionPresetHigh];
//5.指定layer 的frame 然后添加到View上
self.layer = [[AVCaptureVideoPreviewLayer alloc]initWithSession:self.session];
self.layer.frame = self.view.bounds;
[self.view.layer addSublayer:self.layer];
//6.开启会话
[self.session startRunning];
}
//扫描出结果之后就会调用
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
AVMetadataMachineReadableCodeObject *objc = [metadataObjects firstObject];
NSString *str = objc.stringValue;
NSLog(@"%@",str);
//
//停止扫描
[self.session stopRunning];
//移除layer
[self.layer removeFromSuperlayer];
}
@end
相关推荐
H5+ 二维码扫描功能
二维码在生活中的使用越来越广泛,APP开发中,也越来越多的需求需要用到二维码的扫描功能,以下就针对h5+的二维码扫描功能做一些简单的介绍; 1. var bc = new plus.barcode.Barcode( id, filters, styles ); 创建二维码扫描对象id: 条码识别控件在Webview窗口的DOM节点的id值filters: 要识别的条码类型过滤器,为条码
扫描图片中的二维码获取二维码中的信息
###记录一下识别二维码中的信息 CIDetectordetector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy:CIDetectorAccuracyHigh}]; //2.扫描获取的特征组 UIImage im = [UIImage...
手机扫描二维码原理和二维码生成的实现
安卓开发
使用ZXing实现二维码扫描
二维码现在越来越火爆,使用的越发广泛,对于二维码二维码的生成与解析,有多种途径,这里我选择用google老大的ZXing。 其中刘超大神使用ZXing写了一个快速集成二维码扫描的工具类,实现其核心的实现扫描的功能。使用时通过调用二维码工具类,几行代码就可以实现二维码扫描的功能。 参考资料: 二维码工具类下载地址: https://github.com/yi
zxing二维码不可以多次扫描
给大家看一下效果图: 最近公司开发一个项目,一个购物的项目。用到了扫描获取条形码,挺简单网上案例比较多,去谁那里有可能copy一大堆,但是往往他就是一个演示的Demo和你的有很多差距,所以这就需要我们动脑子思考了,我们首先拿到人家的项目不要着急往自己的项目里copy。我们先运行一遍人家的,看一下方法和他的思路,我们开发主要还是思维和逻辑,不能总copy人家代码吧? 首先拿到人家
VSCode多文件C语言项目编译实战:从配置到运行
本文详细讲解了如何在VSCode中配置多文件C语言项目的编译环境。通过手把手教学,指导读者创建项目结构、编写代码,并重点深度配置task.json与launch.json文件,实现一键编译和调试所有C文件,解决常见的“undefined reference”等链接错误,提升开发效率。
Unity之生成扫描二维码
Unity之生成扫描二维码
基于 YOLO + SAM 的自动图像标注实战
摘要: 本文提出一种基于YOLO检测和SAM分割的自动化数据标注流水线方案,通过YOLO定位目标并生成检测框,再以检测框为提示驱动SAM完成精细分割,最终输出YOLO格式的标注文件。该方案将人工标注升级为半自动流程,显著提升标注效率,尤其适用于多类别、大规模图像的实例级标注需求。代码模块化设计支持模型灵活替换,并集成异常处理与进度可视化功能。虽依赖YOLO检测质量且对小目标存在局限,但作为工程落地方案,可有效降低私有数据集构建成本,适用于工业检测、遥感等场景的冷启动标注。
ios 二维码扫描(微信二维码扫描音效)
非常感谢大家利用自己宝贵的时间来阅读我的文章 , 今天给大家带来的是一个原生二维码扫描的demo,很久之前写的代码,最近项目要用,想着以后用到的可能性也挺大的,就翻出来整理了个demo出来,如果需要的可以做个参考。如果需要的话希望能帮到你 , 当然, 有任何不妥的地方 欢迎指正。喜欢的可以关注一下我的博客、我的简书 老规矩,先上效果展示 卧槽,这个gif为何如此之大。。。
GraphRAG + Ollama 本地化部署实战:从零搭建知识图谱问答系统
本文详细介绍了如何在本地部署GraphRAG与Ollama,搭建一个完全自主可控的知识图谱问答系统。通过逐步指导环境配置、项目初始化、核心设置修改以及源码适配,成功将GraphRAG从依赖云端OpenAI API转向本地Ollama服务,并选用qwen2.5:7b和nomic-embed-text模型。该方案有效解决了数据隐私与持续API成本问题,特别适合中小企业构建内部知识库或智能客服系统。
接上篇,记录一下【Unity 3D对博途PLCSIM的通讯】文章有点长~仔细看,很基础
本文参考链接:西门子PLC丨PROFINET通讯仿真(虚拟通讯)做了一些更详细的优化,本文使用的类库并非原作者使用的类库。 首先,昨天项目已经创建好了,这边也加了一个InputField和一个Button,可以实现简单的读取,ok开始。 放入准备好的通讯类库; 新建一个博途的项目,本次测试使用博途V15,测试环境为虚拟机,Unity运行在本地计算机,建立博途项目流程如下: 新建项目,右键项目-属性-保护-对勾,如图: 不得不说的是,仿真中加密的FB块是无法下载的哦~ 添加CPU...
android端快速生成二维码和进行二维码扫描
android端快速即成微信扫一扫功能,并且根据自己的需求快速生成二维码
Google Earth Engine(GEE)——使用归一化燃烧指数 (NBR) 绘制地表烧伤严重程度图
归一化燃烧指数(Normalized Burn Ratio, NBR)是一种遥感指标,用于评估野火或烧伤地面后的植被恢复情况。NBR能增强较大范围的火灾区域,如大于200公顷。它是通过比较远红外波段 (SWIR) 和近红外波段 (NIR) 的反射率来计算的。SWIR波段测量烧伤地面的反射率,NIR波段测量没有受到烧伤影响的植被的反射率。NBR的计算公式为:NBR =(NIR-SWIR)/(NIR + SWIR)。其中,NIR为近红外波段,SWIR为短波红外波段。
基于 zxing 的二维码扫描
前言现在的应用中二维码扫描已经成为一个应用必不可少的功能,现在大部分Android二维码扫描都是基于zxing和Zbar,这文章就来介绍一下基于zxing的二维码扫描。先看下效果图虽然现在的关于二维码的文章有很多,但是很多都是交我们怎么使用,在使用的时候我也遇到了很多问题,比如。UI界面太丑,没有用的文件太多,扫描太慢,版本太老。本Demo使用的是3.x的是比较新的版本。我用的小米2A(api=1
ADC实现模数转换Multisim电路仿真——硬件工程师笔记
8位模数转换器(ADC)是将模拟信号转换为8位数字信号的电子器件,具有256级量化能力。其工作原理分为采样、量化和编码三个阶段,关键参数包括分辨率、采样率、精度、线性度和信噪比。常见型号有ADC0804、ADC0808等,广泛应用于数据采集、音频处理、通信系统和消费电子产品中。典型应用时需要配置参考电压、模拟输入和数字输出引脚,并通过仿真实验验证转换效果(如-10V对应输出0,10V对应255)。硬件工程师需掌握其原理和参数选择,相关笔试面试资料可在优快云博客获取。
安卓新奇玩机工具全攻略___联发科MTK v6 限时免费 刷写固件工具操作
摘要:该文介绍一款限时免费的联发科V6刷机工具,支持小米、Vivo、Moto等多品牌设备,包括红米Note14Pro等机型(Klimt/Goya等代码)。工具需注册使用,提供EFS分区备份功能。作者提示工具可能触发杀毒警报,强调禁止非法用途,并说明部分联网工具可能失效。
uniApp 实现二维码扫描
在pages目录下创建一个用于扫描二维码的页面,如scanCode.vue。用户点击 “扫描二维码” 按钮后,会打开系统的扫码界面,扫描成功后会在控制台输出二维码的内容。
从零到一:ESP32与豆包大模型的RTC连续对话实现指南
文本实现ESP32S3 SparkBot与豆包大模型的RTC连续对话
Android扫描二维码及生成二维码Demo
制作二维码扫描及生成Demo首先要导入Google Zxing包code.jar。 Zxing源码及jar包下载地址:http://code.google.com/p/zxing/ Demo下载地址:http://download.csdn.net/detail/ericfantastic/9070921 二维码扫描及生成二维码Demo效果图: 导入相关的Zxing类
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
iOS之二维码扫描
最近复习,之前项目需求要实现一个二维码扫描的课程签到的功能。这里简单总结一下。根据文件的名字,相信也能猜出这俩文件实现的功能。首先说一下二维码扫描View的实现#import <UIKit/UIKit.h>@interface CaptureRectView : UIView- (void)setupView; @end这个接口里的方法被第一个文件调用的。- (void)setupView {
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
iOS中 扫描二维码/生成二维码详解
指示根视图: [objc] view plaincopy self.window.rootViewController = [[UINavigationController alloc]initWithRootViewController:[SecondViewController new]]; 生成二维码:
mui实现二维码扫描
mui实现二维码扫描 直接上代码 发现 物品二维码扫描
二维码生成 扫描二维码
//导入依赖 allprojects { repositories { google() jcenter() maven {url ‘https://jitpack.io’} } } implementation ‘com.github.jwkj:LibZXing:v1.0.4’ //配置文件 <uses-permission android:name="android.permission...
2万+



被折叠的 条评论
为什么被折叠?



