Created
September 30, 2018 11:31
-
-
Save henrik-dmg/d35c32f7aefab35f74374cea8f8062a0 to your computer and use it in GitHub Desktop.
A function to generate a QR code from Data and then automatically scale it up to the targets size to remove blur
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func generateQRCode(from data: Data) -> UIImage? { | |
if let filter = CIFilter(name: "CIQRCodeGenerator") { | |
filter.setValue(data, forKey: "inputMessage") | |
guard let qrCodeImage = filter.outputImage else { return nil } | |
let scaleX = self.codeView.frame.size.width / qrCodeImage.extent.size.width | |
let scaleY = self.codeView.frame.size.height / qrCodeImage.extent.size.height | |
let transform = CGAffineTransform(scaleX: scaleX, y: scaleY) | |
if let output = filter.outputImage?.transformed(by: transform) { | |
return UIImage(ciImage: output) | |
} else { | |
return nil | |
} | |
} else { | |
return nil | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment