前端之家收集整理的这篇文章主要介绍了
二维码---相册识别 swift,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
swift 3.0 xcode 8.1
需要在info.plist 添加 Privacy - Photo Library Usage Description YES
import UIKit
class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton.init(type: UIButtonType.custom)
button.frame = CGRect.init(x: 20,y: 300,width: 300,height: 40)
button.setTitle("点击获取相册二维码图片信息",for: UIControlState.normal)
button.setTitleColor(UIColor.black,for: UIControlState.normal)
button.addTarget(self,action: #selector(self.getImage),for: UIControlEvents.touchUpInside)
self.view.addSubview(button)
}
func getImage() {
let imagePickCST = UIImagePickerControllerSourceType.photoLibrary
let imagePickC = UIImagePickerController.init()
imagePickC.sourceType = imagePickCST
imagePickC.delegate = self
self.present(imagePickC,animated: true,completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [String : Any]) {
picker.dismiss(animated: true,completion: nil)
//获取到的原始图片
let image = info[UIImagePickerControllerOriginalImage]
let imageData = UIImagePNGRepresentation(image as! UIImage)
let ciImage = CIImage(data: imageData!)
//初始化一个检测器
let detector = CIDetector(ofType: CIDetectorTypeQRCode,context: nil,options: [CIDetectorAccuracy:CIDetectorAccuracyLow])
//检测到的结果数组
let array = detector?.features(in: ciImage!)
//取出数组中的第一个结果
if (array?.count)! > 0 {
let result: CIQRCodeFeature = array!.first as! CIQRCodeFeature
print(result.messageString!)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
原文链接:https://www.f2er.com/swift/322593.html