使用

初始化

使用组件前,需要完成的基本初始化操作。

前置条件

若要通过组件初始化,必须先完成 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时为这么大倍数
Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""