반응형

바코드 생성하기 (Code128, QRCode)

문자열을 입력받아 바코드를 만드려면 
다음과 같이 String을 Extension해서 쉽게 만들수 있다.

extension String {
    /**
     바코드 이미지 만들기
     
     - Parameter isQRCode: true(QRCode), false(Code128)
     */
    func generateBarcodeImage(isQRCode: Bool) -> UIImage? {
        let data = self.data(using: String.Encoding.ascii)
        
        var filterName = "CICode128BarcodeGenerator"
        if isQRCode {
            filterName = "CIQRCodeGenerator"
        }
        
        if let filter = CIFilter(name: filterName) {
            filter.setValue(data, forKey: "inputMessage")
            let transform = CGAffineTransform(scaleX: 3, y: 3)
            
            if let output = filter.outputImage?.applying(transform) {
                return UIImage(ciImage: output)
            }
        }
        
        return nil
    }
}


반응형
Posted by 까칠코더
,