ZBar扫码
来源:互联网 发布:淘宝宝贝评价没有了 编辑:程序博客网 时间:2024/04/18 13:24
导入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;
ZBarReaderView*lqxreadview;
UIImageView*lqxscanZomeBack;
UIImageView*lqxreadLineView;
}
@end
@implementation LQXZBarViewController
- (void)viewDidLoad {
[superviewDidLoad];
[selfInitScan];
[selfloopDrawLine];
}
#pragma mark 初始化扫描
- (void)InitScan
{
lqxreadview = [ZBarReaderViewnew];
lqxreadview.backgroundColor = [UIColorclearColor];
lqxreadview.frame =CGRectMake(187.5 -150, 333.5 -150, 300,300);
lqxreadview.readerDelegate =self;
lqxreadview.allowsPinchZoom =YES;//使用手势变焦
lqxreadview.trackingColor = [UIColorredColor];
lqxreadview.showsFPS =NO;// 显示帧率 YES 显示 NO不显示
lqxreadview.scanCrop =CGRectMake(50,50, 50,50);//将被扫描的图像的区域
UIImage *hbImage=[UIImageimageNamed:@"框.png"];
lqxscanZomeBack=[[UIImageViewalloc] initWithImage:hbImage];
//添加一个背景图片
CGRect mImagerect=CGRectMake((lqxreadview.frame.size.width-200)/2.0, (lqxreadview.frame.size.height-200)/2.0,200, 200);
[lqxscanZomeBacksetFrame:mImagerect];
lqxreadview.scanCrop = [selfgetScanCrop:mImagerect readerViewBounds:lqxreadview.bounds];//将被扫描的图像的区域
[lqxreadviewaddSubview:lqxscanZomeBack];
[lqxreadviewaddSubview:lqxreadLineView];
[self.viewaddSubview:lqxreadview];
[lqxreadviewstart];
}
#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;
returnCGRectMake(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) {
[lqxreadLineViewremoveFromSuperview];
}
lqxreadLineView = [[UIImageViewalloc] initWithFrame:rect];
lqxreadLineView.backgroundColor = [UIColorredColor];
[lqxreadLineViewsetImage:[UIImageimageNamed:@"线.jpg"]];
[UIViewanimateWithDuration: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);
[lqxreadLineViewsetAnimationRepeatCount:0];
}
completion:^(BOOL finished){
if (!is_Anmotion) {
[selfloopDrawLine];
}
}];
[lqxreadviewaddSubview:lqxreadLineView];
}
#pragma mark 获取扫描结果
- (void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image
{
// 得到扫描的条码内容
constzbar_symbol_t *symbol = zbar_symbol_set_first_symbol(symbols.zbarSymbolSet);
NSString *symbolStr = [NSStringstringWithUTF8String: zbar_symbol_get_data(symbol)];
if (zbar_symbol_get_type(symbol) ==ZBAR_QRCODE) {
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:symbolStr]];
}
for (ZBarSymbol *symbolin symbols) {
break;
}
[readerView stop];
is_Anmotion =YES;
[readerView removeFromSuperview];
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// 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
- ZBar扫码
- ZBar扫码
- Zbar扫码优化
- Zbar扫码(摄像头+本地图片+6.0权限)
- QrCodeScanner扫码工具(融合Zxing和Zbar库,扫码效率奇高)
- QrCodeScanner扫码工具(融合Zxing和Zbar库,扫码效率奇高)
- iOS扫码Zbar静态库支持arm64和arms7s的静态库
- ios ZBar扫二维码奇奇怪怪的错误
- 扫条码集成Activity(Zbar 解码、ZXing 管理相机)
- 扫码
- zbar
- Zbar
- 扫码二维码
- Android 扫码模块
- iOS 原生扫码
- ZXing扫码
- 如何实现扫码
- Android 二维码扫码
- keil c 的错误error C141: syntax error near '='
- JAVA嵌入运行Groovy脚本
- 利用HorizontalScrollView实现页签效果
- LeetCode Maximum Product Subarray
- 使用Maven来管理项目-pom.xml详细解读(三)
- ZBar扫码
- CADisplayLink
- C++——运算符重载(四)
- PMI-ACP敏捷认证:敏捷开发的6个实战经验
- Spring+MyBatis多数据源配置实现
- HDU 1323 Perfection (水题)
- 2015-0909-osg学习历程8
- mysql远程连接 Host * is not allowed to connect to this MySQL server问题解决方法
- iOS,关于真机tableViewCell上面button响应事件,不同版本崩溃问题解决