Guest User

Untitled

a guest
Feb 17th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. class QRCodeViewController: UIViewController {
  2.  
  3. @IBOutlet weak var imageView: UIImageView!
  4. @IBOutlet weak var messageLabel: UILabel!
  5.  
  6. override func viewDidLoad() {
  7. super.viewDidLoad()
  8.  
  9. generateQRCodeImage()
  10. detectQRCode()
  11. }
  12.  
  13. func generateQRCodeImage() {
  14. let message = "Hello World"
  15. let data = message.data(using: String.Encoding.ascii)
  16. let qrCodeGeneratorFilter = CIFilter(name: "CIQRCodeGenerator", parameters: ["inputMessage": data!])!
  17.  
  18. let barcodeImage = UIImage(ciImage: qrCodeGeneratorFilter.outputImage!)
  19. self.imageView.image = barcodeImage
  20.  
  21. // You need to upscale your generated QR code image to imageview's size
  22. // using nearest which results in sharp, pixelated image.
  23. // This usually isn't what you want when resizing icons/photos but is perfect for QR codes.
  24. self.imageView.layer.magnificationFilter = CALayerContentsFilter.nearest
  25. }
  26.  
  27. func detectQRCode() {
  28. let inputImage = CIImage(cgImage: UIImage(named: "qrcode")!.cgImage!)
  29. let detector = CIDetector(ofType: "CIDetectorTypeQRCode", context: nil, options: nil)!
  30. let features = detector.features(in: inputImage)
  31. let qrCodeFeature = features.first as! CIQRCodeFeature
  32. self.messageLabel.text = qrCodeFeature.messageString!
  33. }
  34. }
Add Comment
Please, Sign In to add comment