为了账号安全,请及时绑定邮箱和手机立即绑定

如何在iOS上扫描条形码?

如何在iOS上扫描条形码?

动漫人物 2019-09-18 11:21:58
如何在iPhone和/或iPad上简单扫描条形码?
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我们为iPhone制作了“条形码”应用程序。它可以解码QR码。源代码可从zxing项目获得 ; 具体来说,您要查看iPhone客户端和核心库的部分C ++端口。该端口有点陈旧,大约是Java代码的0.9版本,但仍然应该运行得相当好。


如果需要扫描其他格式(如1D格式),可以将此项目中的Java代码端口继续到C ++。


编辑:iphone项目中的条形码和代码在2014年初退役。


查看完整回答
反对 回复 2019-09-18
?
MMTTMM

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];

}


查看完整回答
反对 回复 2019-09-18
?
慕斯709654

TA贡献1840条经验 获得超5个赞

有两个主要的图书馆:


ZXing用Java编写的库,然后移植到Objective C / C ++(仅限QR代码)。另一个到ObjC的端口已由TheLevelUp:ZXingObjC完成


ZBar是一款用于读取条形码的开源软件,基于C语言。


根据我的实验,ZBar比ZXing 更准确,更快,至少在iPhone上。


查看完整回答
反对 回复 2019-09-18
  • 3 回答
  • 0 关注
  • 1042 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信