RHScan 1.0.2

RHScan 1.0.2

river 维护。



RHScan 1.0.2

  • 编者:
  • huangkunhe

RHScan——实现二维码扫描功能,包含各种UI、手势放大缩小镜头、仿微信扫码放大

iOS 模仿微信扫描二维码放大功能


说明:本程序仅供学习交流,不可用于任何商业用途。

CocoaPods 安装

pod 'RHScan'

我们知道,微信扫描二维码过程中,如果二维码图片焦距较远,则会拉近焦距,实现放大功能。这种效果如何实现,以及如何使用原生 API 实现。本文简单尝试使用 AVFoundation 实现放大二维码图片。重点是定位二维码和放大二维码,前面介绍了在 iOS 扫描二维码实现手势拉近拉远镜头的过程,可参考 iOS 识别过程中描绘二维码边框的相关文章: iOS 识别过程中描绘二维码边框 iOS 识别过程中描绘二维码边框 ,我们可以很简单地实现二维码定位和放大。

- (void)changeVideoScale:(AVMetadataMachineReadableCodeObject *)objc
{
NSArray *array = objc.corners;
CGPoint point = CGPointZero;
int index = 0;
CFDictionaryRef dict = (__bridge CFDictionaryRef)(array[index++]);
// 把点转换为不可变字典
// 把字典转换为点,存在point里,成功返回true 其他false
CGPointMakeWithDictionaryRepresentation(dict, &point);
NSLog(@"X:%f -- Y:%f",point.x,point.y);
CGPoint point2 = CGPointZero;
CGPointMakeWithDictionaryRepresentation((__bridge CFDictionaryRef)array[2], &point2);
NSLog(@"X:%f -- Y:%f",point2.x,point2.y);
CGFloat scace =150/(point2.x-point.x); //当二维码图片宽小于150,进行放大
if (scace > 1) {

[self setVideoScale:scace];
}
return;
}

上述代码用于检测二维码边长小于150时进行放大。具体可以根据需求进行设置,并实现二维码位置的调整。

喜欢的话可以star支持哦,非常感谢您的支持!~