1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html
2.新建一个项目。
3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项(见附件)
4.在项目文件的target中加入 以下framework
5、.h代码为:
#import <UIKit/UIKit.h>
#import "ZBarSDK.h"
@protocol ScanCodeViewDelegate <NSObject>
-(void)finishRead:(NSString *)barCode;
@end
@interface ScanCodeViewController : UIViewController<ZBarReaderViewDelegate>{
id<ScanCodeViewDelegate> delegate;
UIImageView *lineView;
}
@property (weak, nonatomic) IBOutlet ZBarReaderView *readerView;
@property(assign,nonatomic) id<ScanCodeViewDelegate> delegate;
@end
6、.m代码为:
- (void)viewDidLoad
{
[super viewDidLoad];
self.title=@"条形码扫描";
self.navigationItem.rightBarButtonItem = [ViewUitls getRightUIBarButtonItem:@"取消" target:self action:@selector(cancelScan)];
_readerView.readerDelegate = self;
//关闭闪光灯
_readerView.torchMode = 0;
//取消手动对焦
_readerView.allowsPinchZoom=NO;
//扫描区域,这里可以自己调整
CGRect scanMaskRect = CGRectMake(100, CGRectGetMidY(_readerView.frame) - 126, 250, 250);
//处理模拟器
if (TARGET_IPHONE_SIMULATOR) {
ZBarCameraSimulator *cameraSimulator
= [[ZBarCameraSimulator alloc]initWithViewController:self];
cameraSimulator.readerView = _readerView;
}
[self.view addSubview:_readerView];
//扫描区域计算
CGRect scanCrop=[self getScanCrop:scanMaskRect readerViewBounds:self.readerView.bounds];
_readerView.scanCrop = scanCrop;
//这里添加了一个类似微信的扫描框,可以根据自己需要添加
UIImageView *imageView=[[UIImageView alloc] init];
if(kIsIphone5){
imageView.image=[UIImage imageNamed:@"scan_bg_568h"];
imageView.frame=CGRectMake(0, 0, 320, 568);
}else{
imageView.image=[UIImage imageNamed:@"scan_bg"];
imageView.frame=CGRectMake(0, 0, 320, 480);
}
[self.view addSubview:imageView];
//这里添加了类似微信的扫描线,并开始上线滑动动画
lineView=[[UIImageView alloc] initWithFrame:CGRectMake(51, 200, 219, 3)];
lineView.image=[UIImage imageNamed:@"scan_line"];
[self.view addSubview:lineView];
[self loadAnimationStart];
}
-(void)loadAnimationStart{
if(kIsIphone5){
[UIView animateWithDuration:2.0 animations:^{
lineView.frame=CGRectMake(lineView.frame.origin.x, 390,lineView.frame.size.width,lineView.frame.size.height);
} completion:^(BOOL finished) {
[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(secStart) userInfo:nil repeats:NO];
}];
}else{
[UIView animateWithDuration:2.0 animations:^{
lineView.frame=CGRectMake(lineView.frame.origin.x, 345,lineView.frame.size.width,lineView.frame.size.height);
} completion:^(BOOL finished) {
[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(secStart) userInfo:nil repeats:NO];
}];
}
}
-(void)secStart{
if(kIsIphone5){
lineView.frame=CGRectMake(lineView.frame.origin.x, 175,lineView.frame.size.width,lineView.frame.size.height);
[self loadAnimationStart];
}else{
lineView.frame=CGRectMake(lineView.frame.origin.x, 130,lineView.frame.size.width,lineView.frame.size.height);
[self loadAnimationStart];
}
}
-(void)cancelScan{
[_readerView stop];
[self dismissViewControllerAnimated:YES completion:nil];
}
- (CGRect)getScanCrop:(CGRect)rect readerViewBounds:(CGRect)rvBounds{
CGFloat x,y,width,height;
x = rect.origin.y / rvBounds.size.height;
y = 1 - (rect.origin.x + rect.size.width) / rvBounds.size.width;
width = (rect.origin.y + rect.size.height) / rvBounds.size.height;
height = 1 - rect.origin.x / rvBounds.size.width;
returnCGRectMake(x, y, width, height);
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:YES];
[_readerView start];
}
- (void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image
{
NSString *str;
for (ZBarSymbol *symbol in symbols) {
DLog(@"%@", symbol.data);
str=symbol.data;
break;
}
[_readerView stop];
if([_delegate respondsToSelector:@selector(finishRead:)]){
[_delegate finishRead:str];
}
[self dismissViewControllerAnimated:YES completion:nil];
}
//代码见附件,直接导入工程就可以使用了
相关推荐
Windows10+VS2015+OpenCV4.1.0+Zbar读取条形码/二维码
Zbar条形码,二维码扫描 IOS开发,生成条形码,二维码,通过摄像头,图像识别条形码,二维码
基于Vs2013写的整个工程, OPenCV和Zbar的配置都是用属性表实现的,再属性表里更换自己的本机路径,工程就可以正常运行。...基于Zbar实现条形码和二维码定位识别,识别率比opencv4.1.2里面的QRCodeDetector高
使用Zbar条码识别,包含源码,支持二维码,条码CODE39,CODE128等等
用zbarxing做的快速扫描识别二维码和生成二维码,里面包括闪光灯的打开关闭,相册选择二维码识别,扫描二维码不到1秒就可扫码出来的完整demo
在xcode4.6 iOS6.0 6.1 测试可用~~~ 实现了二维码、条形码的扫描以及二维码的生成
zBar SDK iOS实现二维码功能, 可以直接集成到COCOS与UNITY中!
ZBar实现微信条形码二维码扫描界面,自定义扫码界面,全屏扫描界面,覆盖视图拿到项目中就可以使用,微信扫一扫界面,自定义扫描焦点
结合Opencv 3.4与ZBar第3方库做的二维码和条形码识别程序,亲测可用!
ZBar实现微信条形码二维码扫描界面,自定义扫码界面,覆盖视图拿到项目中就可以使用,微信扫一扫界面
iOS二维码使用工具ZBAR文档说明 支持二维码的扫描 生成 , 以及条形码的扫描
ZBar 二维码、条形码的扫描与生成,集成简单易用
之前尝试使用Zxing来进行扫描,无奈Zxing速度太慢,而且对扫描的二维码或条形码的清晰度要求很高,故在网上找寻,发现高人所写的使用Zbar进行二维码扫描的结算,使用后发现Zbar的扫描效率和准确度比Zxing高出不止一点,...
iOS 长按识别 图片中的二维码 zbar pincode
C#使用zxing,zbar,thoughtworkQRcode解析二维码,源代码 ,呕心沥血整合的,贡献给有需要的人,省的再一个个试
ZBar条码/二维码扫描,包含相册图片解析,已绘制扫描框
ZBar实现微信条形码二维码扫描界面,自定义扫码界面,全屏扫描界面,覆盖视图拿到项目中就可以使用,微信扫一扫界面,自定义扫描焦点,支持Xcode8运行,因为之前的项目很老了,今天无意中看到新版本已经运行不起来了...