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
반응형
'iOS' 카테고리의 다른 글
| XCode 프로젝트에서 pods 제거하는 방법 (0) | 2023.10.10 |
|---|---|
| Xcode 설치 방법 (0) | 2023.03.14 |
| UIImage에서 만든 MTLTexture의 orientation이 이상할 때 (0) | 2023.02.25 |
| [SwiftUI] Admob 전면 광고(Interstitial ad) 보여주기 (0) | 2022.09.28 |
| [SwiftUI] Google AdMob 적용하기 (배너광고, 보상형광고) (0) | 2022.08.16 |