• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift开发小技巧--识别选中照片中的二维码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  • 点击相册按钮,打开用户相册
    @IBAction func photoBtnClick(sender: AnyObject) {
        // 打开相册
        // 1.判断是否能够打开相册
        /*
        case PhotoLibrary  相册
        case Camera 相机
        case SavedPhotosAlbum 图片库
        */
        if !UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary)
        {
            return
        }

        // 2.创建相册控制器
        let imagePickerVC = UIImagePickerController()

        imagePickerVC.delegate = self // 代理方法中识别照片中的二维码
        // 3.弹出相册控制器
        presentViewController(imagePickerVC, animated: true, completion: nil)

    }
  • 打开相册时,创建了相册控制器,设置相册控制器的代理,代理中的方法实现识别二维码.需要同时实现两个代理UINavigationControllerDelegate, UIImagePickerControllerDelegate
    // 过时的方法
    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {

    }
    // 未过时的方法
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

        // 1.取出选中的图片
        guard let image = info[UIImagePickerControllerOriginalImage] as? UIImage else
        {
            return
        }

        guard let ciImage = CIImage(image: image) else
        {
            return
        }

        // 2.从选中的图片中读取二维码数据
        // 2.1创建一个探测器
        // CIDetectorTypeFace -- 探测器还可以搞人脸识别
        let detector = CIDetector(ofType: CIDetectorTypeQRCode, context: nil, options: [CIDetectorAccuracy: CIDetectorAccuracyLow])
        // 2.2利用探测器探测数据
        let results = detector.featuresInImage(ciImage)
        // 2.3取出探测到的数据
        for result in results
        {
            ChaosLog((result as! CIQRCodeFeature).messageString)
        }

        // 注意: 如果实现了该方法, 当选中一张图片时系统就不会自动关闭相册控制器
        picker.dismissViewControllerAnimated(true, completion: nil)
    }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
定位框一闪而过iOSSwift发布时间:2022-07-13
下一篇:
Swift - 做一个简单的无线U盘(手机端Http服务器搭建)发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap