iOS_从相机或相册里扫描二维码或条形码

该文章详细介绍了如何在iOS应用中实现二维码和条形码的扫描功能,包括从相机和相册中获取图像进行识别。首先,文章讲解了申请相机权限和创建扫描器的步骤,然后阐述了启动扫描和处理扫描结果的方法。接着,文章转向从相册选取图片进行扫描,包括获取相册权限,打开相册,以及解析图片中的条码信息。最后,文章提到了使用Vision框架进行条码检测和解析。


1. 从相机里扫描

1.1 申请相机权限

  • 导入: import AVFoundation
  • 在项目的 Info.plist 文件里添加 Privacy - Camera Usage Descriptio 描述申请使用相机权限。
  • 查询相机权限: AVCaptureDevice.authorizationStatus(for: .video)
  • 权限类型:AVAuthorizationStatus
notDetermined   未申请
restricted      受限制
denied          已拒绝
authorized      已授权
  • 请求相机权限,系统弹出授权申请提示:
AVCaptureDevice.requestAccess(for: .video) {
   
    (status) in
    // handle request result
}

1.2 创建Scanner

  • 获得设备:
 guard let device = AVCaptureDevice.default(for: .video) else {
   
   
    print("device error")
    return
}
  • 创建input:
 let input: AVCaptureDeviceInput
do {
   
   
  input = try AVCaptureDeviceInput(device: device)
} catch {
   
   
  print("input error")
  return
}
if self.captureSession.canAddInput(input) {
   
   
    self.captureSession.addInput(input)
} else {
   
   
    print("session can't add input")
    return
}
  • 创建 output:
let output = AVCaptureMetadataOutput()
if self.captureSession.canAddOutput(output) {
   
   
    // Tips: add output must before of set output
    self.captureSession.addOutput(output)
} else {
   
   
    print("session can't add output")
    return
}

// Set metadata identification type qr: QR code; Other: Barcode
// 设置扫描类型(qr:二维码,其他:条形码)
let hopeSupportTypes = [AVMetadataObject.ObjectType.qr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小莫同学~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值