ZBar的简单使用
NSRunLoop类声明的编程接口用于管理输入源对象。一个NSRunLoop对象处理像来自窗体系统中的鼠标和键盘事件,NSPORT对象和NSConnection连接对象这类的输入源。一个NSRunLoop对象也处理的NSTimer事件。
每一个NSThread对象。包含应用程序的主线程。具有依据须要自己主动创建一个NSRunLoop对象。假设你须要訪问当前线程的执行循环,能够使用类方法currentRunLoop。
1.下载ZBar的第三方库。加入入project
- (void)viewDidLoad
{
[super viewDidLoad];
//设置代理
self.readerDelegate = self;
//扫瞄图像
ZBarImageScanner *mScanner = self.scanner;
//是否显示绿色的追踪框。注意。即当选择yes的时候。这个框只当扫瞄EAN和I2/5的时候才可见。
self.tracksSymbols = YES;
//是否使用备用控制组
self.showsZBarControls = YES;
//支持的方向。用ZBarOrientationMask() 和 ZBarOrientationMaskAll
self.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationMaskPortrait);
//提供自己定义覆盖层。注意,在showsZBarControls启用的情况下才干够用
UIView *view = [[UIView alloc] initWithFrame:self.view.bounds];
view.backgroundColor = [UIColor grayColor];
self.cameraOverlayView = view;
//裁剪扫描的图像,在扫描前图像将被裁剪到这个矩形内。这个矩形框是将图像的尺寸和宽高比标准化,
//有效值将放置矩形内介于0和1的每一个轴。当中x轴相应于图像的长轴。默觉得完整的图像(0。0,1,1)。
// self.scanCrop
//调节以适应预览图片
// self.cameraViewTransform
[mScanner setSymbology:ZBAR_I25
config:ZBAR_CFG_ENABLE
to:0];
// Do any additional setup after loading the view.
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.readerView start];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.readerView stop];
}
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//获取扫瞄结果
id<NSFastEnumeration>
results = [info objectForKey:ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for (symbol in results)
break;
NSString *text = symbol.data;
//解决中文乱码问题
if ([text canBeConvertedToEncoding:NSShiftJISStringEncoding])
{
text = [NSString stringWithCString:[text cStringUsingEncoding:NSShiftJISStringEncoding] encoding:NSUTF8StringEncoding];
}
NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:[NSString stringWithFormat:@"%@",text],@"resultLabel",[info objectForKey:UIImagePickerControllerOriginalImage],@"resultImgView", nil];
[self performSelectorOnMainThread:@selector(mainAction:) withObject:dic waitUntilDone:NO];
}
- (void)mainAction:(NSDictionary *)dic
{
OtherViewController *other = [[OtherViewController alloc] init];
other.resultString = [dic objectForKey:@"resultLabel"];
other.image = [dic objectForKey:@"resultImgView"];
[self.navigationController pushViewController:other animated:YES];
// supply a pre-configured image scanner.
- (id) initWithImageScanner: (ZBarImageScanner*)
imageScanner;
// start the video stream and barcode reader.
- (void) start;
// stop the video stream and barcode reader.
- (void) stop;
// clear the internal result cache
- (void) flushCache;
// compensate for device/camera/interface orientation
- (void) willRotateToInterfaceOrientation: (UIInterfaceOrientation)
orient
// delegate is notified of decode results.
@property (nonatomic, assign) id<ZBarReaderViewDelegate>
readerDelegate;
// access to image scanner for configuration.
@property (nonatomic, readonly) ZBarImageScanner *scanner;
// whether to display the tracking annotation for uncertain barcodes
// (default YES).
@property (nonatomic) BOOL tracksSymbols;
// color of the tracking box (default green)
// enable pinch gesture recognition for zooming the preview/decode
// (default YES).
@property (nonatomic) BOOL allowsPinchZoom;
// torch mode to set automatically (default Auto).
// zoom scale factor applied to video preview *and* scanCrop.
// also updated by pinch-zoom gesture. clipped to range [1,maxZoom],
// defaults to 1.25
@property (nonatomic) CGFloat zoom;
- (void) setZoom: (CGFloat) zoom
// the region of the image that will be scanned. normalized coordinates.
- (void)readerView:(ZBarReaderView *)readerView
didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image
{
ZBarSymbol *symbol = nil;
for (symbol in symbols)
break;
NSString *text = symbol.data;
NSLog(@"%@",text);
ZBar的简单使用的更多相关文章
- 使用Zbar实现简单的二维码扫描
导入ZBarSDK导入系统库 AVFoundation.framework,CoreMedia.framework,CoreVideo.framework,QuartzCore.framework,l ...
- centos 6.5 python2.6.6 zbar 安装
经过数次折腾,终于搞明白了这个zbar的安装顺序. 1.先安装http://zbar.sourceforge.net/download.html 下的zbar, 2.python 安装z ...
- Zbar算法流程介绍
博客转载自:https://blog.csdn.net/sunflower_boy/article/details/50783179 zbar算法是现在网上开源的条形码,二维码检测算法,算法可识别大部 ...
- 有关python下二维码识别用法及识别率对比分析
最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...
- iOS ZBar扫码简单实现
导入ZBarSDK文件并引入一下框架 AVFoundation.framework CoreMedia.framework CoreVideo.framework QuartzCore.framewo ...
- 二维码开源库zbar、zxing使用心得
首先说明我的测试场景是“识别打印在纸上的二维码”,在扫描结果中寻找二维码并进行识别,而不是直接让摄像头对着二维码扫描. zbar和zxing用的都是自己从github上clone的c++源码/接口编译 ...
- windows平台python 2.7环境编译安装zbar
最近一个项目需要识别二维码,找来找去找到了zbar和zxing,中间越过无数坑,总算基本上弄明白,分享出来给大家. 一.zbar官方介绍 ZBar 是款桌面电脑用条形码/二维码扫描工具,支持摄像头及图 ...
- ZBar与ZXing使用后感觉
[原]ZBar与ZXing使用后感觉(上) 2014-3-18阅读2011 评论1 最近对二维码比较感兴趣,还是那句老话,那么我就对比了一下zxing和zbar 如果对于这两个的背景不了解的话,可以看 ...
- 编译安装 zbar 时两次 make 带来的惊喜
为了装 php 的条形码扩展模块 php-zbarcode,先装了一天的 ImageMagick 和 zbar.也许和我装的 Ubuntu 17.10 的有版本兼容问题吧,总之什么毛病都有,apt 不 ...
随机推荐
- Codeforces Round #378 (Div. 2)F - Drivers Dissatisfaction GNU
http://codeforces.com/contest/733/problem/F 题意:给你一些城市和一些路,每条路有不满意程度和每减少一点不满意程度的花费,给出最大花费,要求找出花费小于s的最 ...
- 19.并发容器之BlockingQueue
1. BlockingQueue简介 在实际编程中,会经常使用到JDK中Collection集合框架中的各种容器类如实现List,Map,Queue接口的容器类,但是这些容器类基本上不是线程安全的,除 ...
- How to find per-process I/O statistics on Linux
以下转自http://www.xaprb.com/blog/2009/08/23/how-to-find-per-process-io-statistics-on-linux/ Newer Linux ...
- Android面试三之Service
Service是什么 Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件.其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行.另 ...
- Log4j详细设置说明
1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下.2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径 ...
- 在Linux下安装JDK环境
解压java安装包到指定目录下,这里为/data/software/java/, 然后在/etc/profile添加以下内容: JAVA_HOME =/data/software/java/jdk1. ...
- vue.js 源代码学习笔记 ----- 工具方法 env
/* @flow */ /* globals MutationObserver */ import { noop } from 'shared/util' // can we use __proto_ ...
- phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接
phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接--解决方法 phpMyAdmin 尝试连接到 MySQL 服务器,但服务器拒绝连接.您应该检查配置文件中的主机.用户名和 ...
- Unity 异步网络方案 IOCP Socket + ThreadSafe Queue
Unity IOCP Socket + ThreadSafe Queue 1.Socket.BeginReceive系列接口在unityweb下是不正常的,页面刷新会导致问题 2.自己维护线程,会带来 ...
- awk结合正则匹配
利用awk分析data.csv中label列各取值的分布. 在终端执行head data.csv查看数据: name,business,label,label_name 沧州光松房屋拆迁有限公司,旧房 ...