zoukankan      html  css  js  c++  java
  • iOS 识别图片二维码demo,复制粘贴即用

     

     

    #import "ViewController.h"
    
    @interface ViewController ()<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
    
    /** 背景图片 */
    @property (nonatomic, strong) UIImageView *imgView;
    
    @end
    
    @implementation ViewController
    - (UIImageView *)imgView {
        if (!_imgView) {
            UIImageView *imgView = [[UIImageView alloc] init];
            imgView.backgroundColor = [UIColor greenColor];
            [self.view addSubview:imgView];
            _imgView = imgView;
        }
        return _imgView;
    }
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.view.backgroundColor = [UIColor grayColor];
    
        CGFloat imgX = 50;
        CGFloat imgY = 200;
        CGFloat imgW = 300;
        CGFloat imgH = 300;
        self.imgView.frame = CGRectMake(imgX, imgY, imgW, imgH);
        
        
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
        btn.frame = CGRectMake(40, 550, 200, 50);
        [btn setTitle:@"选照片" forState:UIControlStateNormal];
        [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        btn.titleLabel.font = [UIFont systemFontOfSize:15];
        
        [btn addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:btn];
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    #pragma mark - 从系统相册中选择 选取
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
        UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
        _imgView.image = image;
        [picker dismissViewControllerAnimated:YES completion:nil];
        
        UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 2.2);
        CGContextRef context = UIGraphicsGetCurrentContext();
        [self.view.layer renderInContext:context];
        _imgView.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        NSString *sss = [self stringValueFrom:_imgView.image];
        NSLog(@"结果是666:%@",sss);
    }
    #pragma mark - 从系统相册中选择 取消
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
        [picker dismissViewControllerAnimated:YES completion:nil];
    }
    #pragma mark -//系统识别相册二维码
    -(NSString *)stringValueFrom:(UIImage *)image{
        ///系统识别二维码
        CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy: CIDetectorAccuracyHigh}];
        // 取得识别结果
        NSArray *features = [detector featuresInImage:[CIImage imageWithCGImage:image.CGImage]];
        NSString *resultStr;
        if (features.count == 0) {
            return @"请检查图片是不是二维码";
        }
        for (int index = 0; index < [features count]; index ++) {
            CIQRCodeFeature *feature = [features objectAtIndex:index];
            resultStr = feature.messageString;
        }
        return resultStr;
    }
    ///////////////////////////////////////////////////////////////////////////////////
    
  • 相关阅读:
    hdu 4370
    lightoj 1074
    poj 1026
    poj 3159
    poj3660 cow contest
    hdu 4069 垃圾数独
    操作系统概念题复习
    ARM指令
    C++ 抢占时优先级进程调度
    Docker 入门
  • 原文地址:https://www.cnblogs.com/gaozhang12345/p/15657069.html
Copyright © 2011-2022 走看看