iOS使用ZBar实现二维码扫描以及实现识别相册中二维码图片功能
来源:互联网 发布:新浪微博如何解绑淘宝 编辑:程序博客网 时间:2024/04/29 00:06
使用zbar调用相机扫码代码:
//打开相机
- (void) init_camera
{
self.navigationController.navigationBarHidden=YES;
[commonaddNavigationAddToView:self.viewInfo:@"二维码"Target:selfaction:@selector(returnbtn:)PatientName:@"扫码"];
UIButton *rightBtn=[UIButtonbuttonWithType:UIButtonTypeCustom];
[rightBtnsetFrame:CGRectMake(kScreenWidth-18-40,19, 40,40)];
[rightBtnsetTitle:@"相册"forState:UIControlStateNormal];
[rightBtn.titleLabelsetFont:[UIFontsystemFontOfSize:16]];
[self.viewaddSubview:rightBtn];
[rightBtnaddTarget:selfaction:@selector(rightBtnClick)forControlEvents:UIControlEventTouchUpInside];
//开启zbar封装好的拍照界面
ZBarReaderView * reader = [ZBarReaderViewnew];
ZBarImageScanner * scanner = [ZBarImageScannernew];
[scannersetSymbology:ZBAR_PARTIALconfig:0to:0];
reader.readerDelegate =self;
const float h = [UIScreenmainScreen].bounds.size.height;
const float w = [UIScreenmainScreen].bounds.size.width;
CGRect reader_rect1 = CGRectMake(0,60, w, h-60);//全屏模式
reader.frame = reader_rect1;
reader.backgroundColor = [UIColorredColor];
[readerstart];
[self.viewaddSubview: reader];
//添加覆盖视图
_overLayView = [[ZbarOverlayViewalloc]initWithFrame:CGRectMake(0,0, reader.frame.size.width, reader.frame.size.height)];
//[_overLayView startAnimation];
_overLayView.transparentArea =CGRectMake(50,100, kScreenWidth-100,kScreenWidth-100);//设置中间可选框大小
[readeraddSubview:_overLayView];
//设置扫描识别框
reader.scanCrop=CGRectMake(0,0, 1,1);
}
//扫描结果的代理方法
#pragma mark - ZbarReaderView Delegate
- (void) readerView:(ZBarReaderView *)readerView didReadSymbols: (ZBarSymbolSet *)symbols fromImage:(UIImage *)image
{
ZBarSymbol * s =nil;
for (sin symbols)
{
//s.data为识别到的二维码转换的信息,开发者进行各种处理
[selfgetTicketDetailInfo:s.data];
break;
}
//如果没有扫描到二维码信息,进行报错提示
UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:nilmessage:@"没有识别到图片中二维码"delegate:selfcancelButtonTitle:nilotherButtonTitles:@"确定",nil];
[alert show];
}
//调用相册图片并识别其中二维码信息代码:
定义全局变量:ZBarReaderController *imagePicker;
//打开相册操作
ZBarReaderController相当于对bar系统相册的一个封装
-(void)rightBtnClick
{
imagePicker = [ZBarReaderControllernew];
imagePicker.allowsEditing =NO ;
imagePicker.showsHelpOnFail =NO;
imagePicker.readerDelegate =self;
imagePicker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
[selfpresentViewController:imagePickeranimated:YEScompletion:nil];
}
#pragma mark - ZBarReaderController ReadDelegate
//相册选取图片后的代理方法对应ZBarReaderController
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
id<NSFastEnumeration> results = [infoobjectForKey:ZBarReaderControllerResults];
ZBarSymbol *symbol =nil;
for(symbol in results) {
NSLog(@"symbol:%@", symbol);
break;
}
[imagePicker dismissViewControllerAnimated:YEScompletion:nil];
//二维码字符串
NSString *QRCodeString = symbol.data;
//处理二维码图片信息
[self getTicketDetailInfo:QRCodeString];
}
//选择图片没有二维码信息的代理方法
-(void)readerControllerDidFailToRead:(ZBarReaderController *)reader withRetry:(BOOL)retry
{
if (retry) {
//retry == 1 选择图片为非二维码。
UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:nilmessage:@"没有识别到图片中二维码"delegate:selfcancelButtonTitle:nilotherButtonTitles:@"确定",nil];
[alert show];
[self dismissViewControllerAnimated:YEScompletion:nil];
}
return;
}
- iOS使用ZBar实现二维码扫描以及实现识别相册中二维码图片功能
- iOS使用zbar以及AVFoundation实现二维码扫描
- Android实现二维码扫描功能(四)-ZXing识别图片二维码,相册选图
- IOS下用Zbar实现摄像头扫描二维码和扫描本地相册二维码
- IOS下用Zbar实现摄像头扫描二维码和扫描本地相册二维码
- 用ZBar实现IOS上二维码扫描功能
- 利用Zbar来实现iOS中扫描二维码
- iOS Zbar获取相册本地图片扫描二维码
- 在iOS中使用ZBar扫描二维码
- 在iOS中使用ZBar扫描二维码
- [IPHONE] iOS使用ZbarSDK实现扫描二维码以及条形码功能
- ios ZBar识别选中相册的图片二维码
- iOS使用Zbar扫描二维码
- iOS 二维码的扫描使用,以及图片预览,类似于相册
- ZBar 实现扫描长方形二维码
- iOS 自带二维码识别(识别二维码,条形码以及从相册中选择图片进行识别)
- ios-实现二维码扫描功能
- iOS中使用ZBar扫描二维码自定义扫描界面
- Valid Parentheses问题及解法
- 自定义键盘,获取到屏幕高度,虚拟按键高度
- java实现简繁字体转换
- 自定义数据类型--联合体、枚举、结构体
- 一头扎进Spring源码之获取与切入思路
- iOS使用ZBar实现二维码扫描以及实现识别相册中二维码图片功能
- soapui 测试 rest webservice Post方式接口
- Win7,64位下安装Python2.7.2
- 解决CentOS下不能使用NFS+Lighttpd(或者httpd)提供web服务的问题
- 设计模式之责任链模式
- 软件测试基础---下
- 实验2
- mssql高效的分页存储过程
- Java 使用Freemarker导出word 文档,解决当一段内容中既有文字又有图片的问题