亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS筆記061之二維碼的生成和掃描

2020-07-26 03:34:30
字體:
來源:轉載
供稿:網友

如今二維碼隨處可見,無論是實物商品還是各種禮券都少不了二維碼的身影。而手機等移動設備又成為二維碼的一個很好的應用平臺,不管是生成二維碼還是掃碼二維碼。本篇文章從生成二維碼、掃描二維碼展開分析,通過內容分析二維碼用起來也很easy了。

首先說下生成二維碼

       二維碼可以存放純文本、名片或者URL

其次生成二維碼的步驟:

       導入CoreImage框架

再次通過濾鏡CIFilter生成二維碼

1、創建過濾器

2、恢復濾鏡的默認屬性

3、設置內容

4、獲取輸出文件

5、顯示二維碼

代碼實現 CoreImage

 // 二維碼的生成 // 1、創建過濾器 CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 2、恢復濾鏡的默認屬性 [filter setDefaults]; // 3、設置內容 NSString *str = @"這是一個二維碼的生成結果"; NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; // 使用KVO設置屬性 [filter setValue:data forKey:@"inputMessage"]; // 4、獲取輸出文件 CIImage *outputImage = [filter outputImage]; // 5、顯示二維碼 self.imageView.image = [UIImage imageWithCIImage:outputImage];

這樣顯示的圖片不是很清晰,可以自己重繪圖片

重新生成高清圖片:網上找即可,具體過程可暫時不關心

/** * 根據CIImage生成指定大小的UIImage * * @param image CIImage * @param size 圖片寬度 */- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size{ CGRect extent = CGRectIntegral(image.extent); CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent)); // 1.創建bitmap; size_t width = CGRectGetWidth(extent) * scale; size_t height = CGRectGetHeight(extent) * scale; CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray(); CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone); CIContext *context = [CIContext contextWithOptions:nil]; CGImageRef bitmapImage = [context createCGImage:image fromRect:extent]; CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone); CGContextScaleCTM(bitmapRef, scale, scale); CGContextDrawImage(bitmapRef, extent, bitmapImage); // 2.保存bitmap到圖片 CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); CGContextRelease(bitmapRef); CGImageRelease(bitmapImage); return [UIImage imageWithCGImage:scaledImage];}

還有就是設置內容為網址時,如果帶有協議頭的話,會自動打開網頁。

NSString *str = @http://www.baidu.com;

必須帶有協議頭才能打開

回到頂部

掃描二維碼

AVFoundation框架

二維碼的掃描過程

1、創建捕捉會話AVCaptureSession

添加輸入設備(數據從攝像頭輸入) AVCaptureDevice AVCaptureDeviceInput

2、添加輸出數據(示例對象-->類對象-->元類對象-->根元類對象) AVCaptureMetadataOutput

2.1.設置輸入元數據的類型(類型是二維碼數據) setMetadataObjectTypes

3、添加掃描圖層 AVCaptureVideoPreviewLayer

4、開始掃描 startRunning

5、實現回調代理方法,獲取掃描結果 captureOutput: :

#import "ViewController.h"#import <AVFoundation/AVFoundation.h>@interface ViewController () <AVCaptureMetadataOutputObjectsDelegate>/**顯示圖層*/@property (nonatomic, strong) AVCaptureVideoPreviewLayer *layer;/**捕捉會話*/@property (nonatomic, strong) AVCaptureSession *session;@end@implementation ViewController- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // 二維碼的掃描 // 1、創建捕捉會話 AVCaptureSession *session = [[AVCaptureSession alloc] init]; self.session = session; // 2.添加輸入設備(數據從攝像頭輸入) AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil]; [session addInput:input]; // 3、添加輸出數據(示例對象-->類對象-->元類對象-->根元類對象) AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init]; [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; [session addOutput:output]; // 3.1.設置輸入元數據的類型(類型是二維碼數據) [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]; // 4、添加掃描圖層 AVCaptureVideoPreviewLayer *layer = [AVCaptureVideoPreviewLayer layerWithSession:session]; layer.frame = self.view.bounds; [self.view.layer addSublayer:layer]; self.layer = layer; // 5、開始掃描 [session startRunning];}/** * 實現output的回調方法 */- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{ // 數組metadataObjects中存放結果數據 if (metadataObjects.count > 0) { // 獲取最終的讀取結果 AVMetadataMachineReadableCodeObject *object = [metadataObjects lastObject]; NSLog(@"%@",object.stringValue); [self.session stopRunning]; [self.layer removeFromSuperlayer]; } else { NSLog(@"沒有掃描到數據"); }}

總結一句話:這個二維碼使用起來也不難

本文就到此為止,IOS筆記061之二維碼的生成和掃描希望在今后的工作和學習能夠幫助到大家。下面文章給大家分享如何在蘋果iOS設備上使用二維碼,需要了解的朋友點擊這里。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久噜久噜久久综合| 国产亚洲综合久久| 91精品国产乱码久久久久久蜜臀| 精品国产电影一区| 欧美精品在线播放| 亚洲欧美国产精品久久久久久久| 亚洲综合日韩中文字幕v在线| 亚洲精品一区二区三区不| 亚洲成年网站在线观看| 国产精品久久久久久亚洲影视| 精品国产乱码久久久久久婷婷| 欧美日韩国产一区二区| 亚洲美女动态图120秒| 日本aⅴ大伊香蕉精品视频| 国产精品日日摸夜夜添夜夜av| 在线观看欧美日韩国产| 亚洲欧美激情视频| 精品美女久久久久久免费| 成人天堂噜噜噜| 91中文精品字幕在线视频| 奇米一区二区三区四区久久| 国产成+人+综合+亚洲欧洲| 亚洲国产成人精品电影| 亚洲视频777| 亚洲高清av在线| 午夜精品福利在线观看| 日韩免费视频在线观看| 久久人人爽人人爽人人片亚洲| 成人免费视频在线观看超级碰| 成人激情春色网| 亚洲欧美精品中文字幕在线| 久久精品国产成人| 精品美女久久久久久免费| 欧美另类69精品久久久久9999| 成人h视频在线观看播放| 久久精品国产一区二区电影| 国产热re99久久6国产精品| 国产欧美日韩精品在线观看| 欧美大片网站在线观看| 欧美中文字幕视频在线观看| 欧美一性一乱一交一视频| 亚洲精品欧美一区二区三区| 国产精品午夜视频| 欧美日韩在线观看视频小说| 国产成人高清激情视频在线观看| 中文字幕久久精品| 亚州国产精品久久久| 欧美激情免费观看| 国产精品18久久久久久首页狼| 九九精品在线视频| 亚洲欧美国产一区二区三区| 亚洲欧美第一页| 久久久久久国产三级电影| 亚洲丁香久久久| 欧美日韩福利在线观看| 欧美另类在线观看| 亚洲国产成人精品电影| 岛国av一区二区在线在线观看| 精品高清一区二区三区| 久久精品视频在线观看| 国产91色在线| 国产成人福利夜色影视| 国产成人精品优优av| 亚洲人成77777在线观看网| 久久久在线观看| 在线亚洲男人天堂| 91久久精品美女高潮| 欧美日本在线视频中文字字幕| 亚洲韩国日本中文字幕| 国产精品丝袜久久久久久不卡| 色婷婷综合成人av| 91精品国产91久久| 热久久美女精品天天吊色| 欧美在线视频在线播放完整版免费观看| 亚洲精品国产福利| 久久久久久久成人| 久久色免费在线视频| 成人疯狂猛交xxx| 久久精品视频在线播放| 97在线看免费观看视频在线观看| 日韩久久免费电影| 色综合五月天导航| 色妞一区二区三区| 国产亚洲日本欧美韩国| 欧美高清电影在线看| 精品在线小视频| 亚洲黄色www网站| 精品国产一区二区三区四区在线观看| 久久精品中文字幕免费mv| 久久视频这里只有精品| 亚洲欧美日韩爽爽影院| 国产一区二区三区高清在线观看| 欧美日韩另类在线| 欧美日韩另类视频| 日本精品一区二区三区在线播放视频| 欧美另类第一页| 国产精品电影网站| 狠狠躁夜夜躁人人躁婷婷91| 久久久亚洲欧洲日产国码aⅴ| 波霸ol色综合久久| 一道本无吗dⅴd在线播放一区| 亚洲国产精品成人va在线观看| 欧美亚洲国产日本| 亚洲欧美国产精品va在线观看| 亚洲视频国产视频| 欧美大片大片在线播放| 亚洲黄色在线看| 欧美性videos高清精品| 国产69精品久久久| 国产乱肥老妇国产一区二| 亚洲精品一区av在线播放| 亚洲精品一区在线观看香蕉| 欧美精品生活片| 欧美亚洲激情视频| 欧美激情综合亚洲一二区| 久久视频精品在线| 国产精品一久久香蕉国产线看观看| 久久久之久亚州精品露出| 亚洲男人天堂网站| 国产91精品久| 欧美激情影音先锋| 成人午夜两性视频| 亚洲欧美综合v| 91香蕉嫩草神马影院在线观看| 中文字幕欧美精品日韩中文字幕| 国产91在线播放九色快色| 欧美精品免费在线| 国产精品久久久久91| 欧美激情精品久久久久久变态| 国产日韩欧美91| 欧美午夜久久久| 国产精品日韩久久久久| 日韩精品在线电影| 亚洲视频一区二区三区| 国产精品一区=区| 国产三级精品网站| 国产日产欧美a一级在线| 亚洲人成77777在线观看网| 久久视频在线直播| 亚洲成人av在线播放| 国产精品成人aaaaa网站| 成人有码在线视频| 国产精品欧美风情| 日韩av日韩在线观看| 一本色道久久综合狠狠躁篇的优点| 日韩av免费一区| 精品免费在线观看| 久久激情视频久久| 亚洲精品第一国产综合精品| 中文字幕自拍vr一区二区三区| 正在播放欧美一区| 色综合91久久精品中文字幕| 欧美亚洲视频在线看网址| 视频在线一区二区| 日韩久久免费电影| 在线观看中文字幕亚洲| 91精品免费看| 久久精品亚洲一区| 久久99久久久久久久噜噜| 国产精品美乳在线观看| 亚洲欧美日韩图片| 7777精品久久久久久| 久久好看免费视频| 亚洲va码欧洲m码|