问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用ios7原生api进行二维码条形码的扫描边框是怎么加上去的

发布网友 发布时间:2022-04-24 16:07

我来回答

1个回答

热心网友 时间:2023-10-13 19:14

官方提供的接口非常简单,代码如下:
@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate>//用于处理采集信息的代理
{
AVCaptureSession * session;//输入输出的中间桥梁
}
@end
@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//获取摄像设备
AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
//创建输入流
AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
//创建输出流
AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutput alloc]init];
//设置代理 在主线程里刷新
[output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];

//初始化链接对象
session = [[AVCaptureSession alloc]init];
//高质量采集率
[session setSessionPreset:AVCaptureSessionPresetHigh];

[session addInput:input];
[session addOutput:output];
//设置扫码支持的编码格式(如下设置条形码和二维码兼容)
output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code];

AVCaptureVideoPreviewLayer * layer = [AVCaptureVideoPreviewLayer layerWithSession:session];
layer.videoGravity=AVLayerVideoGravityResizeAspectFill;
layer.frame=self.view.layer.bounds;
[self.view.layer insertSublayer:layer atIndex:0];
//开始捕获
[session startRunning];
}

之后我们的UI上已经可以看到摄像头捕获的内容,只要实现代理中的方法,就可以完成二维码条形码的扫描:
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{
if (metadataObjects.count>0) {
//[session stopRunning];
AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex : 0 ];
//输出扫描字符串
NSLog(@"%@",metadataObject.stringValue);
}
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 网络应用层的五种服务及其所采用的协议 网络协议的7层,谁能给形象的比喻一下 行吗。。。比喻 拟人都可以额 应用层的基本简介 candy的中文意思意思是什么意思 candy到底怎么读? Candy的中文翻译?? Candy 如果是用于名字的话译成中文是什么意思?Cindy 呢? 一个人对你说“candy”是什么意思? candy 中文什么意思 Candy中文意思 candy意思中文翻译 candy 翻译成中文名是什么 candy汉语意思是什么 candy什么意思中文 桃胶能减肥? 桃胶是否含有植物激素 汽车开空调到底会不会增加油耗?若会,要增加多少? 尿酸高的人能食桃胶雪莲子吗 变频调速技术的原理是什么,有什么应用? 痛风能吃桃胶吗 计算机网络通信协议分为多层,最低的一层是 OSI有哪七层?具体每层有哪些功能? 开放系统互连基本参考模型7层缩写? 物理层、数据链路层、网路层、传输层、话路层、表示层和应用层英语怎么说翻译 简述ISO计算机网络体系统结构各层的主要功能 OSI参考模型的七层英文是什么? 电话网属不属于物理层协议 Iso/osI:几层,各层的作用 在ArcGIS中,如何获得指定区域内所有点的经纬度坐标 端口功能是如何实现的? ArcGIs经纬度如何转换成2000坐标 什么是防雾浴室镜? 求助,arcgis如何在地图上绘制指定经纬度的点? 洗浴时浴室中的镜子有哪些防止镜面模糊的妙招? arcgis经纬度网格如何调整,显示在图层的下方 浴室镜子为什么会起雾,玻璃镜子的工作原理和起雾分析 如何在ARCGIS中给图框4个角添加经纬度,例如下面的图片。 浴室中的镜子为什么会防水防雾? 在arcgis中如何提取出栅格中每个像元点的经纬度及他的value值 卫生间中的防雾浴室镜柜很有必要,为什么很多人都不接受?