iOS ZBar扫码简单实现
导入ZBarSDK文件并引入一下框架
AVFoundation.framework
CoreMedia.framework
CoreVideo.framework
QuartzCore.framework
libiconv.dylib
引入头文件#import “ZBarSDK.h”即可使用
当找到条形码时,会执行代理方法
废话不多说,直接上代码
//
// LQXZBarViewController.m
// erweim
//
// Created by 刘祺旭 on 15/9/9.
// Copyright (c) 2015年 刘祺旭. All rights reserved.
//
import "LQXZBarViewController.h"
@interface LQXZBarViewController ()
{
BOOL is_Anmotion;
ZBarReaderViewlqxreadview;
UIImageViewlqxscanZomeBack;
UIImageView*lqxreadLineView;
}
@end
@implementation LQXZBarViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self InitScan];
[self loopDrawLine];
}
pragma mark 初始化扫描
(void)InitScan
{
lqxreadview = [ZBarReaderView new];
lqxreadview.backgroundColor = [UIColor clearColor];
lqxreadview.frame = CGRectMake(187.5 - 150, 333.5 - 150, 300, 300);
lqxreadview.readerDelegate = self;
lqxreadview.allowsPinchZoom = YES;//使用手势变焦
lqxreadview.trackingColor = [UIColor redColor];
lqxreadview.showsFPS = NO;// 显示帧率 YES 显示 NO 不显示
lqxreadview.scanCrop = CGRectMake(50, 50, 50, 50);//将被扫描的图像的区域UIImage *hbImage=[UIImage imageNamed:@"框.png"];
lqxscanZomeBack=[[UIImageView alloc] initWithImage:hbImage];
//添加一个背景图片
CGRect mImagerect=CGRectMake((lqxreadview.frame.size.width-200)/2.0, (lqxreadview.frame.size.height-200)/2.0, 200, 200);
[lqxscanZomeBack setFrame:mImagerect];
lqxreadview.scanCrop = [self getScanCrop:mImagerect readerViewBounds:lqxreadview.bounds];//将被扫描的图像的区域[lqxreadview addSubview:lqxscanZomeBack];
[lqxreadview addSubview:lqxreadLineView];
[self.view addSubview:lqxreadview];
[lqxreadview start];
}
pragma mark 获取扫描区域
-(CGRect)getScanCrop:(CGRect)rect readerViewBounds:(CGRect)readerViewBounds
{
CGFloat x,y,width,height;
x = rect.origin.x / readerViewBounds.size.width;
y = rect.origin.y / readerViewBounds.size.height;
width = rect.size.width / readerViewBounds.size.width;
height = rect.size.height / readerViewBounds.size.height;
return CGRectMake(x, y, width, height);
}
pragma mark 扫描动画
-(void)loopDrawLine
{
CGRect rect = CGRectMake(lqxscanZomeBack.frame.origin.x, lqxscanZomeBack.frame.origin.y, lqxscanZomeBack.frame.size.width, 2);
if (lqxreadLineView) {
[lqxreadLineView removeFromSuperview];
}
lqxreadLineView = [[UIImageView alloc] initWithFrame:rect];
lqxreadLineView.backgroundColor = [UIColor redColor];
[lqxreadLineView setImage:[UIImage imageNamed:@"线.jpg"]];
[UIView animateWithDuration:3.0
delay: 0.0
options: UIViewAnimationOptionCurveEaseIn
animations:^{
//修改fream的代码写在这里
lqxreadLineView.frame =CGRectMake(lqxscanZomeBack.frame.origin.x, lqxscanZomeBack.frame.origin.y+lqxscanZomeBack.frame.size.height, lqxscanZomeBack.frame.size.width, 2);
[lqxreadLineView setAnimationRepeatCount:0];
}
completion:^(BOOL finished){
if (!is_Anmotion) {
[self loopDrawLine];
}
}];
[lqxreadview addSubview:lqxreadLineView];
}
pragma mark 获取扫描结果
(void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image
{
// 得到扫描的条码内容
const zbar_symbol_t *symbol = zbar_symbol_set_first_symbol(symbols.zbarSymbolSet);
NSString *symbolStr = [NSString stringWithUTF8String: zbar_symbol_get_data(symbol)];
if (zbar_symbol_get_type(symbol) == ZBAR_QRCODE) {[[UIApplication sharedApplication] openURL:[NSURL URLWithString:symbolStr]];
}
for (ZBarSymbol *symbol in symbols) {
break;
}[readerView stop];
is_Anmotion = YES;
[readerView removeFromSuperview];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/*
pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
@end
iOS ZBar扫码简单实现的更多相关文章
- ios zxing扫码问题
在ios 中 扫瞄二维码,条形码基本有 2中第三方的库,一个是zbar 一个是zxing,zxing 在android中表现的比较出色,但是在ios 中不是很好用,扫瞄效率低,我们一般都用zbar,但 ...
- ios ZBar扫二维码奇奇怪怪的错误
Undefined symbols for architecture armv7: "_CVPixelBufferGetHeight", referenced from: -[ZB ...
- ionic3 实现扫码功能
ionic3 通过插件phonegap-plugin-barcodescanner,调用机器硬件摄像头实现扫码功能. 首先当然先了解下 phonegap-plugin-barcodescanner,这 ...
- 最简单的基于FFmpeg的移动端例子:IOS 视频转码器
===================================================== 最简单的基于FFmpeg的移动端例子系列文章列表: 最简单的基于FFmpeg的移动端例子:A ...
- 安卓扫码:简单的ZXing使用记录
ZXing是Google提供的条形码.二维码等的生成.解析的库.最近工作需求去研究了一下,主要是研究怎么扫描二维码(QRCode).网上教程也不少,但大多看了不明所以,甚至看了半天都不知道解码到底从哪 ...
- iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言: 今天给大家 ...
- iOS开发——iOS7(及以后版本) SDK自带二维码(含条形码)扫码、二维码生成
本文转载至 http://www.cnblogs.com/leotangcn/p/4357907.html 现在很多APP都涉及了二维码扫码功能,这个功能简单实用,很多情况下用户乐于使用,现在本文带来 ...
- 最简单的基于FFmpeg的移动端样例:IOS 视频转码器
===================================================== 最简单的基于FFmpeg的移动端样例系列文章列表: 最简单的基于FFmpeg的移动端样例:A ...
- 通过扫码打开IOS的App Store下载APP(Android版暂时没找到解决方法)
项目需求:扫码根据不同平台下载不同版本的APP.主要是ios和Android. 网上找了很多,前面判断平台的代码很容易找到,但是后面的就有些坑了.有的人的是根本跑不通.有的是代码补全. 下面是 微信扫 ...
随机推荐
- 12c meet sysdba meet ORA-01017: invalid username/password; logon denied
checklist: 1.12c: threaded_execution=true Prevents OS Login As Sysdba 2. The following database para ...
- 从今日起,我会把OpenGL红宝书上的例子用完整的代码形式写在我的博客中,
1.使用教程:OpenGL红宝书第8版 2.使用的库工具:GLEW和GLFW 3.使用的IDE:vs2012 4.说说目的:完整的看一遍OpenGL,加深印象并且熟练掌握运用OpenGL 5.欢迎有相 ...
- Oracle中清除BIN$开头的垃圾表的解决办法
10g的新特性flashback闪回区 在10g中bin开头表示已经删除的放在回收站的表,oracle在删除表时并没有彻底的删除,而是把表放入回收站!purge recyclebin清空回收站即可. ...
- jenkins插件 build-name-setter
#${BUILD_NUMBER}-${PROJECT_NAME}-${ENV,var="VARIABLENAME"}-${ENV,var="BUILD_USER" ...
- elasticsearch集群内部节点超时解决
默认配置为:节点每隔1s同master发送1次心跳,超时时间为30s,测试次数为3次,超过3次,则认为该节点同master已经脱离了.以上为elasticsearch的默认配置.在实际生产环境中,每隔 ...
- java 集合大家族
在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList. ...
- HDU 2675 Equation Again
公式转化+二分答案 首先,把题目中给的等式转化一下,变成了这个样子. 等式右边的值是可以求出来的. ln(x)/x的大致图像是这样的 那么只要对[0,e]和[e,+∞]分别进行二分答案即可. #inc ...
- Disassembly2:Built-in Type
先贴一段代码: 跟踪后看到:
- 【PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异常】
public static void main(String[] args) throws IOException { /** * PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异 ...
- hdu_3886_Final Kichiku “Lanlanshu”(数位DP)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3886 题意:这题的题意有点晦涩难懂,大概意思就是给你一个区间,让你找一些满足递增递减条件的数,举个列: ...