SwiftでQRコードを生成する
Core Imageを使うと簡単に作れるんですね〜 Swiftで実装するとこんな感じです。
func makeQRCodeImage(code:String) -> UIImage? {
guard let ciFilter = CIFilter(name: "CIQRCodeGenerator") else {
return nil
}
ciFilter.setDefaults()
// QRコードを設定
ciFilter.setValue(code.data(using: String.Encoding.utf8), forKey: "inputMessage")
// 誤り訂正レベルを設定
// "L" "M" "H" が設定できるみたい
ciFilter.setValue("M", forKey: "inputCorrectionLevel")
if let outputImage = ciFilter.outputImage {
// 作成されたQRコードのイメージが小さいので拡大する
let sizeTransform = CGAffineTransform(scaleX: 10, y: 10)
let zoomedCiImage = outputImage.applying(sizeTransform)
return UIImage(ciImage: zoomedCiImage, scale: 1.0, orientation: .up)
}
return nil
}