IOS应用中的二维码生成和二维码扫描解析

1,生成二维码

下载:https://github.com/jverkoey/ObjQREncoder;解压后将源码库直接包含到项目中。
设置头文件路径,在TARGET中buildingsettings/Header Search Paths
在用到的类中包含头文件#import <QREncoder/QREncoder.h>
调用UIImage* image = [QREncoderencode:@"http://www.google.com/"]生成二维码;
2,二维码扫描
二维码的开源库:ZBar(http://zbar.sourceforge.net/)
 
添加ZBarSDK(http://zbar.sourceforge.net/),其中包含一个libzbar.a的静态库和头文件。
往项目(Linked Frameworks and Libraries)中添加Framework框架以及链接库AVFoundation.framework,CoreMedia.framework,CoreVideo.framework,libiconv.dyliblibzbar.a
工程中使用的地方引入头文件ZBarSDK.h,实现ZBarReaderViewDelegate协议。

BarReaderView *readview = [ZBarReaderView new]; // 初始化

readview.frame= CGRectMake(0, 0, 320, 460);  // 改变frame

readview.readerDelegate= self;       // 设置delegate

readview.allowsPinchZoom= NO;       // 不使用Pinch手势变

readerView.torchMode = 0; //关闭闪光灯

CGRectscanMaskRect = CGRectMake(60, CGRectGetMidY(readerView.frame) - 126, 200, 200);

readerView.scanCrop = [self getScanCrop:scanMaskRectreaderViewBounds:self.readerView.bounds];//设置扫描区域

[self.viewaddSubview:readview];

[readview start];//启动扫描

实现ZBarReaderViewDelegate协议

- (void)readerView:(ZBarReaderView *)readerViewdidReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image

{

    for (ZBarSymbol *symbol in symbols) {

        NSLog(@"%@", symbol.data);

        break;

    }

    [self.readerView stop];

}

中文乱码问题

NSString *symbolStr = sym.data;

        if ([symbolStrcanBeConvertedToEncoding:NSShiftJISStringEncoding])

        {

            symbolStr = [NSStringstringWithCString:[symbolStrcStringUsingEncoding: NSShiftJISStringEncoding] encoding:NSUTF8StringEncoding];

}

原文地址:https://www.cnblogs.com/417460188dy/p/3372186.html