QR 코드 생성 Util을 만들어 보았음.
final class QrCodeGenerator {
static func generateQRCode(from string: String) -> UIImage? {
let data = string.data(using: String.Encoding.ascii)
if let filter = CIFilter(name: "CIQRCodeGenerator") {
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 3, y: 3)
if let output = filter.outputImage?.transformed(by: transform) {
return UIImage(ciImage: output)
}
}
return nil
}
}
여기서 CIFilter는 CIImage라는 object를 만들어주는 클래스이다. "name"이라는 파라미터에 여러가지 옵션을 넣어서 여러 이미지들을 만들어 낼 수 있다.
생성에 성공하면 UIImage 형태의 이미지가 나오게 되고, 실패시 nil이 반환된다.