一顺又、生成二維碼
1咬清、生成過濾器
CIFilter*filer = [CIFilterfilterWithName:@"CIQRCodeGenerator"];
2、恢復(fù)默認(rèn)設(shè)置
[filersetDefaults];
3唆迁、向二維碼中添加數(shù)據(jù)
NSString*string = [NSStringstringWithFormat:@"傻屌"];
NSData*data = [stringdataUsingEncoding:NSUTF8StringEncoding];
[filersetValue:dataforKeyPath:@"inputMessage"];
4葵硕、從過濾器中獲取到二維碼
CIImage*ciImage =? [fileroutputImage];
5、把獲取到的二維碼數(shù)據(jù)加載到視圖中
self.CodeImageView.image= [UIImageimageWithCIImage:ciImage];
二吴藻、掃描二維碼
// 1瞒爬、創(chuàng)建捕捉會話
AVCaptureSession*session = [[AVCaptureSessionalloc]init];
// 2、設(shè)置捕捉的輸入設(shè)備
AVCaptureDevice*device = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput*inPutDevice = [AVCaptureDeviceInputdeviceInputWithDevice:deviceerror:nil];
[sessionaddInput:inPutDevice];
// 3沟堡、設(shè)置捕捉的輸出數(shù)據(jù)
AVCaptureMetadataOutput*MetadataOutput = [[AVCaptureMetadataOutputalloc]init];
[MetadataOutputsetMetadataObjectsDelegate:selfqueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)];
[sessionaddOutput:MetadataOutput];
[MetadataOutputsetMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];
// 4侧但、添加捕捉圖層
AVCaptureVideoPreviewLayer*preViewLayer = [AVCaptureVideoPreviewLayerlayerWithSession:session];
preViewLayer.frame=self.view.bounds;
[self.view.layeraddSublayer:preViewLayer];
// 5、執(zhí)行捕捉
[sessionstartRunning];