文字列やURLからQRコードを生成する


文字列やURLからQRコードを生成するサンプルコードです。
This is a sample code that generates a QR code from a character string or URL.

これらの記事を参考にさせていただきました。

CIImageをData型に変換したときにハマった時の対処法(Swift3.0)
SwiftでQRコードを生成してみた

生成したQRコードはこちらです。

alt

ViewController.swift

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)

    }
}