본문 바로가기
iOS

Swift에서 QR Code 이미지 생성하는 법

by 워뇨옹2 2023. 2. 26.
728x90
반응형

Swift에서 QR Code를 생성하는 법은 간단하다. Swift 자체적으로 QR Code를 제작하는 API를 가지고 있다. 

CoreImage의 qrcodegenerator라는 필터를 이용하는 것인데, 코드는 다음과 같다.

 

Code

import UIKit
import CoreImage.CIFilterBuiltins
func generateQRCode(from string: String) -> UIImage? {
    let data = Data(string.utf8)
    let qrFilter = CIFilter.qrCodeGenerator()
    qrFilter.message = data
    
    guard let qrImage = qrFilter.outputImage else {
        return nil
    }
    let transform = CGAffineTransform(scaleX: 10, y: 10)
    let output = qrImage.transformed(by: transform)
    let context = CIContext()
    guard let cgImage = context.createCGImage(output, from: output.extent) else {
        return nil 
    }
    
    return UIImage(cgImage: cgImage)
}

부연설명

이 함수는 qrcode로 만들어낼 문자열을 인자로 받고 있다. 받아낸 문자열을 utf8 형식의 데이터로 변환한 뒤 CIFilter의 qrCodeGenerator라는 필터를 사용해서 이 데이터를 ciImage로 만들어준다. 이렇게 만들어진 이미지의 크기는 27*27의 크기를 가지는데, 여러분이 원하는 사이즈만큼 transform 변수의 스케일에 값을 넣어주면 된다.

 

그리고 cgImage로의 변환을 한 번 거쳐준 뒤, UIimage로 최종적으로 결과를 만들어주면 된다.

 

728x90
반응형