Swift QR코드 이미지 생성

1379 단어
인터넷상에서 각종 QR코드 이미지를 생성하는 코드를 종합해 보니 내 것이 비교적 좋다고 느꼈다.코드에 직접 접속하시고..
//       
func generateQRCodeImage(_ content: String, size: CGSize) -> UIImage?
{
//
guard let filter = CIFilter(name: "CIQRCodeGenerator") else {return nil}
//
filter.setDefaults()
//
let contentData = content.data(using: String.Encoding.utf8)
filter.setValue(contentData, forKey: "inputMessage")
//            
guard let ciImage = filter.outputImage else {return nil}

let context = CIContext(options: nil)
let bitmapImage = context.createCGImage(ciImage, from: ciImage.extent)

let colorSpace = CGColorSpaceCreateDeviceGray()
let bitmapContext = CGContext(data: nil, width: Int(size.width), height: Int(size.height), bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: CGImageAlphaInfo.none.rawValue)

//draw image
let scale = min(size.width / ciImage.extent.width, size.height / ciImage.extent.height)
bitmapContext!.interpolationQuality = CGInterpolationQuality.none
bitmapContext?.scaleBy(x: scale, y: scale)
bitmapContext?.draw(bitmapImage!, in: ciImage.extent)

//  bitmap   
guard let scaledImage = bitmapContext?.makeImage() else {return nil}

return UIImage(cgImage: scaledImage)

}
QR코드를 생성해야 하는 문자열과 CGsize를 입력하면 QR코드 이미지가 반환됩니다.

좋은 웹페이지 즐겨찾기