使用
初始化
使用组件前,需要完成的基本初始化操作。
前置条件
若要通过组件初始化,必须先完成 SDK 集成,详情请参见 集成 SDK。
引入头文件
#import 'TMFCodeDetector.h'
初始化
- (instancetype)init;
初始化示例
// 初始化一个检测实例
TMFCodeDetector *codeDetector = [[TMFCodeDetector alloc] init];
扫描识别
通过调用扫描识别,从图片中识别出二维码/条形码。
前置条件
若要通过组件进行二维码/条形码识别,必须先初始化一个检测实例,详情请参见 初始化。
快速扫描图片
- (NSString *)decodeImage:(UIImage *)image;
- 参数
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
image | UIImage * |
需要识别的图片对象,可以从摄像头获取或本地获取等 | Y |
- 返回值
类型 | 描述 |
---|---|
NSString * |
当前扫描识别的结果,二维码/条形码信息 |
下面是从本地图片中识别二维码的示例:
// 初始化
TMFCodeDetector *codeDetector = [[TMFCodeDetector alloc] init];
// 此处可以自行实现通过摄像头扫码,获取摄像头的图片对象
// UIImage *image = [self callTheAVCaptureSessionToCatchAQRCodeOrBarCode];
UIImage *image = [UIImage imageNamed:@"带有二维码的示例图片"];
NSString *result = [codeDetector decodeImage:image];
识别图片中的多个二维码
- (NSArray<TMFCodeDetectorResult *> *)getResults:(UIImage *)image;
- 参数
参数 | 类型 | 描述 | 必选 |
---|---|---|---|
image | UIImage * |
需要识别的图片对象,可以从摄像头获取或本地获取等 | Y |
- 返回值
类型 | 描述 |
---|---|
NSArray<TMFCodeDetectorResult *> * |
当前扫描识别的结果,二维码/条形码结果数组 |
- TMFCodeDetectorResult
成员 | 类型 | 描述 |
---|---|---|
typeName | NSString * | 识别出的一维码或者二维码的类型 |
data | NSString * | 识别出的字符串值 |
points | NSArray * | 对应的码在图片中的边框的点列表 |
下面是从本地图片中识别二维码的示例:
// 初始化
TMFCodeDetector *codeDetector = [[TMFCodeDetector alloc] init];
// 此处可以自行实现通过摄像头扫码,获取摄像头的图片对象
// UIImage *image = [self callTheAVCaptureSessionToCatchAQRCodeOrBarCode];
UIImage *image = [UIImage imageNamed:@"带有二维码的示例图片"];
NSArray *results = [_codeDetector getResults:targetImage];
if (results && results.count>0) {
NSMutableString* data = [NSMutableString new];
NSLog(@"qrcode result count:%lu",(unsigned long)results.count);
for (TMFCodeDetectorResult *result in results) {
[data appendString:result.typeName];
[data appendString:@"\n"];
[data appendString:result.data];
[data appendString:@"\n"];
[data appendString:@"====================="];
[data appendString:@"\n\n"];
NSMutableString *pointStr = [NSMutableString new];
for (NSValue *value in result.points) {
CGPoint point = [value CGPointValue];
[pointStr appendFormat:@"(%f,%f)",point.x,point.y];
}
NSLog(@"qrcode result %@,%@,%@",result.typeName,result.data,pointStr);
}
}
获取缩放信息
识别失败时,可调用缩放信息获取当前图片是否需要这么大来控制相机焦距调整。
- (float)getZoomFactor;
- 返回值
类型 | 描述 |
---|---|
float | 当前解析的图片是否需要放大,float>0时为这么大倍数 |