This is a sample code to generate a QR code from a character string or URL.
Reference:
CIImageをData型に変換したときにハマった時の対処法(Swift3.0)
SwiftでQRコードを生成してみた
The generated QR code is here.
This file contains 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
import UIKit | |
class ViewController: UIViewController { | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
//文字列をNSDataに変換し、QRコードを作成します。 | |
//Converts a string to NSData. | |
let str = "カビゴン可愛い、大好き" | |
let data = str.data(using: String.Encoding.utf8)! | |
//URLをNSDataに変換し、QRコードを作成します。 | |
//Converts a url to NSData. | |
//let url = "http://swiswiswift.com" | |
//let data = url.data(using: String.Encoding.utf8)! | |
//QRコードを生成します。 | |
//Generate QR code. | |
let qr = CIFilter(name: "CIQRCodeGenerator", withInputParameters: ["inputMessage": data, "inputCorrectionLevel": "M"])! | |
let sizeTransform = CGAffineTransform(scaleX: 10, y: 10) | |
let qrImage = qr.outputImage!.transformed(by: sizeTransform) | |
let context = CIContext() | |
let cgImage = context.createCGImage(qrImage, from: qrImage.extent) | |
let uiImage = UIImage(cgImage: cgImage!) | |
//作成したQRコードを表示します | |
//Display QR code | |
let qrImageView = UIImageView() | |
qrImageView.contentMode = .scaleAspectFit | |
qrImageView.frame = self.view.frame | |
qrImageView.image = uiImage | |
self.view.addSubview(qrImageView) | |
} | |
} |