3 回答
TA贡献1801条经验 获得超8个赞
我们为iPhone制作了“条形码”应用程序。它可以解码QR码。源代码可从zxing项目获得 ; 具体来说,您要查看iPhone客户端和核心库的部分C ++端口。该端口有点陈旧,大约是Java代码的0.9版本,但仍然应该运行得相当好。
如果需要扫描其他格式(如1D格式),可以将此项目中的Java代码端口继续到C ++。
编辑:iphone项目中的条形码和代码在2014年初退役。
TA贡献1869条经验 获得超4个赞
与发布时一样,iOS7您不再需要使用外部框架或库。拥有AVFoundation的iOS生态系统现在完全支持扫描从EAN到UPC的QR中的几乎所有代码。
只需看看Tech Note和AVFoundation编程指南。AVMetadataObjectTypeQRCode是你的朋友。
这是一个很好的教程,一步一步地显示它: iPhone QR码扫描库iOS7
关于如何设置它的一个小例子:
#pragma mark -
#pragma mark AVFoundationScanSetup
- (void) setupScanner;
{
self.device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
self.input = [AVCaptureDeviceInput deviceInputWithDevice:self.device error:nil];
self.session = [[AVCaptureSession alloc] init];
self.output = [[AVCaptureMetadataOutput alloc] init];
[self.session addOutput:self.output];
[self.session addInput:self.input];
[self.output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
self.output.metadataObjectTypes = @[AVMetadataObjectTypeQRCode];
self.preview = [AVCaptureVideoPreviewLayer layerWithSession:self.session];
self.preview.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.preview.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
AVCaptureConnection *con = self.preview.connection;
con.videoOrientation = AVCaptureVideoOrientationLandscapeLeft;
[self.view.layer insertSublayer:self.preview atIndex:0];
}
TA贡献1840条经验 获得超5个赞
有两个主要的图书馆:
ZXing用Java编写的库,然后移植到Objective C / C ++(仅限QR代码)。另一个到ObjC的端口已由TheLevelUp:ZXingObjC完成
ZBar是一款用于读取条形码的开源软件,基于C语言。
根据我的实验,ZBar比ZXing 更准确,更快,至少在iPhone上。
- 3 回答
- 0 关注
- 1042 浏览
添加回答
举报