【iOS】一个方法读取图片中的二维码信息
来源:互联网 发布:小米usb共享网络win10 编辑:程序博客网 时间:2024/05/21 15:06
前面的文章中介绍了扫面二维码和条形码《【iOS】AVFoundation架构下的原生二维码和条形码扫描》
也介绍了二维码的生成以及制作一个带logo的二维码
《【iOS】CoreImage原生二维码生成(一)》
《【iOS】CoreImage原生二维码生成(二)一个方法生成带logo的二维码》
在加上现在这一篇,关于二维码的基本完了。但是想理解原理,知道CoreImage还需要大量的实践和阅读,加油!↖(^ω^)↗
读取图片中得二维码,我是这么一个思路,往方法里面传一个图片对象,这个方法就自动读取这个图片信息。
界面:
#pragma mark - 读取图片中的二维码/** * 读取图片中的二维码 * * @param image 图片 * * @return 图片中的二维码数据集合 CIQRCodeFeature对象 */+ (NSArray *)readQRCodeFromImage:(UIImage *)image{ // 创建一个CIImage对象 CIImage *ciImage = [[CIImage alloc] initWithCGImage:image.CGImage options:nil]; CIContext *context = [CIContext contextWithOptions:@{kCIContextUseSoftwareRenderer : @(YES)}]; // 软件渲染 CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:context options:@{CIDetectorAccuracy : CIDetectorAccuracyHigh}];// 二维码识别 // 注意这里的CIDetectorTypeQRCode NSArray *features = [detector featuresInImage:ciImage]; NSLog(@"features = %@",features); // 识别后的结果集 for (CIQRCodeFeature *feature in features) { NSLog(@"msg = %@",feature.messageString); // 打印二维码中的信息 } return features;}结合上一篇《【iOS】CoreImage原生二维码生成(二)一个方法生成带logo的二维码》中的代码:
//// ViewController.m// HGDQQRCode//// Created by zhuming on 16/3/9.// Copyright © 2016年 zhuming. All rights reserved.//#import "ViewController.h"#import "HGDQQRCodeView.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIView *QRView;@property (weak, nonatomic) IBOutlet UILabel *msglabel;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; [self.msglabel sizeToFit]; // Do any additional setup after loading the view, typically from a nib.}/** * 生成二维码 * * @param sender sender description */- (IBAction)btnClick:(id)sender { [HGDQQRCodeView creatQRCodeWithURLString:@"http://blog.csdn.net/zhuming3834" superView:self.QRView logoImage:[UIImage imageNamed:@"logo"] logoImageSize:CGSizeMake(40, 40) logoImageWithCornerRadius:0];}/** * 读取图片中的二维码 * * @param sender sender description */- (IBAction)readBtnClick:(id)sender { // 截图 UIImage *im = [HGDQQRCodeView screenShotFormView:self.view]; // 读取图片中的二维码 NSArray *array = [HGDQQRCodeView readQRCodeFromImage:im]; // 显示二维码中的信息 NSMutableString *str = [[NSMutableString alloc] init]; [array enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { CIQRCodeFeature *temp = (CIQRCodeFeature *)obj; [str appendFormat:@"地址:%@",temp.messageString]; }]; self.msglabel.text = str;}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end截图方法:
/** * 截图 * * @param view 需要截取的视图 * * @return 截图 图片 */+ (UIImage *)screenShotFormView:(UIView *)view{ UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, [UIScreen mainScreen].scale); [view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return img;}生成的结果截图:
github代码地址:请点击我。
0 0
- 【iOS】一个方法读取图片中的二维码信息
- iOS 二维码 (包括扫描二维码,和读取二维码图片)
- ios 读取数据库中的图片方法
- Python读取iOS安装包IPA中的信息和图片
- iOS 读取图片 exif 信息
- ios 原生sdk 识别图片中的二维码
- iOS 二维码扫面 相册图片二维码读取和二维码的生成
- 直接读取URL图片中的二维信息
- iOS读取制作二维码
- iOS二维码的读取
- iOS读取二维码
- iOS 读取相册二维码
- iOS生成二维码图片
- iOS 创建二维码图片
- Unity3D读取Ios中的动态UIImage图片
- iOS 读取图片的各种方法
- iOS 读取图片的各种方法
- iOS 读取图片的各种方法
- 太原UI设计师郭文军讲网页设计及web前端网页宽度要求?
- ViewPager源码不完全解读
- 【SPOJ-KING】King【2-SAT】
- <LeetCode OJ> 77. Combinations
- android.os.NetworkOnMainThreadException
- 【iOS】一个方法读取图片中的二维码信息
- vim中注释多行和删除多行注释
- 欢迎使用CSDN-markdown编辑器
- 聚类算法 实例
- SQL数据库823错误
- 余弦相似性计算
- 创建定时器,并修改定时器的线程级别
- Android View 事件分发机制详解
- 使用Gson解析复杂的json数据