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.
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。