AVCaptureMetaDataOutput
- 아이폰 OS 7 일부터 시작
스캔 UPC 값, QR 코드, 그리고 당신이 할 필요가 AVCaptureSession
의 출력으로 설정되어 아이폰 OS 7에 새로운 AVCaptureMetaDataOutput, 모든 종류의 바코드 및 이에 따라 captureOutput:didOutputMetadataObjects:fromConnection:
메소드를 구현 :
@import AVFoundation;
AVCaptureSession *session = [[AVCaptureSession alloc] init];
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device
error:&error];
if (input) {
[session addInput:input];
} else {
NSLog(@"Error: %@", error);
}
AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];
[output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]];
[output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
[session addOutput:output];
[session startRunning];
#pragma mark - AVCaptureMetadataOutputObjectsDelegate
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputMetadataObjects:(NSArray *)metadataObjects
fromConnection:(AVCaptureConnection *)connection
{
NSString *QRCode = nil;
for (AVMetadataObject *metadata in metadataObjects) {
if ([metadata.type isEqualToString:AVMetadataObjectTypeQRCode]) {
// This will never happen; nobody has ever scanned a QR code... ever
QRCode = [(AVMetadataMachineReadableCodeObject *)metadata stringValue];
break;
}
}
NSLog(@"QR Code: %@", QRCode);
}
AVFoundation
당신이 들었어요 모든 코드 지원 (그리고 아마도 몇 가지를 당신이하지 않은 것을) :
AVMetadataObjectTypeUPCECode
AVMetadataObjectTypeCode39Code
AVMetadataObjectTypeCode39Mod43Code
AVMetadataObjectTypeEAN13Code
AVMetadataObjectTypeEAN8Code
AVMetadataObjectTypeCode93Code
AVMetadataObjectTypeCode128Code
AVMetadataObjectTypePDF417Code
AVMetadataObjectTypeQRCode
AVMetadataObjectTypeAztecCode
출처
2013-10-09 05:54:32
iGo
http://stackoverflow.com/questions/838724/barcode-framework-for-the-iphone/862656#862656이 답변은 qrcodes를 읽는 바코드 앱의 소스에 연결됩니다. 당신은 좋은 정보를 받아야합니다. –
zxing은 iOS에서 QR 코드를 잘 처리합니다. 사실, 다른 코드보다 더 좋습니다. 샘플 ScanTest 응용 프로그램은 사용 방법을 보여 주며 QR 코드를 잘 디코딩합니다. – smparkes