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.
}
}