首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Swift 3获取扫描条形码照片?

如何使用Swift 3获取扫描条形码照片?
EN

Stack Overflow用户
提问于 2017-12-15 06:13:28
回答 1查看 467关注 0票数 0
代码语言:javascript
复制
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
    captureSession.stopRunning()

    if let metadataObject = metadataObjects.first {
        let readableObject = metadataObject as! AVMetadataMachineReadableCodeObject;

        AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
        found(code: readableObject.stringValue!);
    }
}

上面的功能运行良好,但我试图获得扫描的结果,并将其作为照片写入设备,但现在似乎不可能。

EN

回答 1

Stack Overflow用户

发布于 2017-12-15 07:26:05

实现这一点的方法是使用CoreImage。当您获得readableObject.stringValue时,您将使用过滤器CICode128BarcodeGenerator生成图像。

因此,在您的示例中:

代码语言:javascript
复制
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [Any]!, from connection: AVCaptureConnection!) {
    captureSession.stopRunning()

    if let metadataObject = metadataObjects.first {
        let readableObject = metadataObject as! AVMetadataMachineReadableCodeObject;

        let barcodeFilter = CIFilter(name: "CICode128BarcodeGenerator")
        barcodeFilter?.setValue(readableObject.stringValue!.data(using: .ascii), forKey: "inputMessage")

        let image = UIImage(ciImage: (barcodeFilter?.outputImage)!)

        AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
        found(code: readableObject.stringValue!);
    }
}

记住在文件的开头使用import CoreImage

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47822892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档