ios 네 이 티 브 QR 코드 스 캔 및 생 성 실현 튜 토리 얼
demo 의 주요 기능 은 QR 코드 를 스 캔 하고 QR 코드 를 생 성 합 니 다.
검색 관련 클래스
QR 코드 스 캔 은 카 메 라 를 가 져 오고 사진 정 보 를 읽 어야 하기 때문에 시스템 의 AVFoundation 프레임 워 크 를 가 져 와 영상 세 션 을 만들어 야 합 니 다.우 리 는 몇 가지 종 류 를 사용 해 야 한다.
AVCapture Session 세 션 대상.하드웨어 설비 가 출력 정 보 를 입력 하 는 다리 로 서 실시 간 으로 설비 데 이 터 를 얻 는 책임 을 진다AVCapture DeviceInput 장치 입력 클래스.이 종 류 는 데 이 터 를 입력 하 는 하드웨어 장 치 를 표시 하고 추상 적 인 장 치 를 설정 하 는 portAVCapture Metadata 출력 클래스.이것 은 QR 코드,바코드 등 이미지 데이터 의 식별 을 지원 합 니 다
QR 코드 스 캔
1.먼저 틀 에 붓는다
#import <AVFoundation/AVFoundation.h>
2.협의 준수
<AVCaptureMetadataOutputObjectsDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
3.주로 사용 하 는 속성 설정
// ,
@property (strong, nonatomic) AVCaptureDevice * device;
//
@property (strong, nonatomic) AVCaptureDeviceInput * input;
// ,
@property (strong, nonatomic) AVCaptureMetadataOutput * output;
//AVFoundation ,
@property (strong, nonatomic) AVCaptureSession * session;
// , CALayer
@property (strong, nonatomic) AVCaptureVideoPreviewLayer * preview;
4.로 컬 앨범 QR 코드 당기 기
- (void)chooseButtonClick
{
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
//
[self stopScan];
//1
UIImagePickerController *pickVC = [[UIImagePickerController alloc]init];
//2
/**
UIImagePickerControllerSourceTypePhotoLibrary,
UIImagePickerControllerSourceTypeCamera,
UIImagePickerControllerSourceTypeSavedPhotosAlbum,
*/
pickVC.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
//3
pickVC.delegate = self;
//4.
self.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
[self presentViewController:pickVC animated:YES completion:nil];
}
else
{
[self showAlertViewWithTitle:@" " withMessage:@" 。 , -> -> !"];
}
}
QR 코드 생 성1.QR 코드 생 성
/**
* 2. CIFilter( )
*/
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
/**
* 3.
*/
[filter setDefaults];
/**
* 4. ( KVC)
*/
//
NSString *info = @"hahahahhahahaha";
// NSData
NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding];
// kvc
[filter setValue:infoData forKeyPath:@"inputMessage"];
/**
* 5.
*/
CIImage *outImage = [filter outputImage];
//imageView.image = [UIImage imageWithCIImage:outImage];// ,
self.codeImage.image = [outImage createNonInterpolatedWithSize:150];
2.로 컬 앨범 에 저장
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
//
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
//
UIGraphicsEndImageContext();
completion(image);
/**
*
*/
UIImageWriteToSavedPhotosAlbum(image, self , @selector(saveImage:didFinishSavingWithError:contextInfo:), nil);//
주요 코드 가 붙 어 있 습 니 다.관심 이 있 으 면 gibHub 주소:https://github.com/MrBMask여기 보 세 요.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.