二维码扫描区域确定

二维码扫描,很多时候项目中会使用到,只是有个头疼的问题,就是扫描区域不够精准,有不少人都是手工去计算,rectOfInterest是扫描范围, 默认为左上角 (0,0,1,1)这是默认值 ,全屏的,最大为1。 经实践发现 (0,0,1,1)这个写法有点坑 实际为(y,x,h,w) 即坐标y,x 尺寸高,宽(h,w)。 当然了用计算方法算不太准确,而且,这个地方太坑了,最后我找到一个方法分享出来,很是精准的。

//监听
   [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(InputChangeNotification) name:AVCaptureInputPortFormatDescriptionDidChangeNotification object:nil];

//设置
- (void)InputChangeNotification {
    AVCaptureMetadataOutput *output = self.session.outputs.firstObject;
    output.rectOfInterest = [self.previewLayer metadataOutputRectOfInterestForRect:self.scanRect];
}

//self.session //会话
//self.previewLayer //取景视图
//metadataOutputRectOfInterestForRect:最终是用这个方法转化到实际扫描范围坐标系的。

转载于:https://my.oschina.net/snOS/blog/1794649

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值