zBar를 이용하여 바코드 인식하기.
- AVFoundation.framework (weak)
- CoreMedia.framework (weak)
- CoreVideo.framework (weak)
- QuartzCore.framework
- libiconv.dylib
#import "ZBarSDK.h"
-(IBAction)press_barcode{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
/*
UIView *barcodeview = [[UIView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)];
UIImageView *barcodeup = [[UIImageView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 80.0f)];
UIImageView *barcodedown = [[UIImageView alloc]initWithFrame:CGRectMake(0.0f, 160.0f, 320.0f, 300.0f)];
[barcodeup setImage:[UIImage imageNamed:@"barcodeup.png"]];
[barcodedown setImage:[UIImage imageNamed:@"barcodedown.png"]];
[barcodeview addSubview:barcodeup];
[barcodeview addSubview:barcodedown];
reader.cameraOverlayView = barcodeview;
[barcodeup release];
[barcodedown release];
*/ 이 주석은 카메라화면이 뜨는 곳에 다른 뷰(이미지)를 더 추가하기 위해서 작성한 코드이다.
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0];
[self presentModalViewController:reader animated:YES];
[scanner release];
[reader release];
}6. 바코드가 스캔 되었을 때, 실행할 부분을 작성한다.
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary*)info {
id<NSFastEnumeration> results = [info objectForKey:ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
break;
barcode_number.text = symbol.data;
//symbol.data가 바코드 번호이다.
/*
if(picker.sourceType == UIImagePickerControllerSourceTypeCamera)
[self performSelector: @selector(playBeep)
withObject: nil
afterDelay: 0.01];
이부분은 스캔이 되었을때, 삐 소리가 하게 하는 부분이다.
*/
[self dismissModalViewControllerAnimated:YES];
}
위와 같이 코딩하면 바코드 스캔 프로그램이 완성된다.
좀 더 참고하거나, 추가하고 싶은 부분이 있으면 아래에 방문에 zBar Document를 참고하기 바란다.
http://zbar.sourceforge.net/iphone/sdkdoc/index.html