自动生成二维码图片
extension String {
public func createQRImage(size: CGFloat) -> UIImage? {
let strData = self.data(using: .utf8, allowLossyConversion: false)
// 创建一个二维码的滤镜
guard let qrFilter = CIFilter(name: "CIQRCodeGenerator") else { return nil }
qrFilter.setValue(strData, forKey: "inputMessage")
qrFilter.setValue(size <= 150 ? "L" : "H", forKey: "inputCorrectionLevel")
let qrCIImage = qrFilter.outputImage
// 创建一个颜色滤镜,黑白色
guard let colorFilter = CIFilter(name: "CIFalseColor") else { return nil }
colorFilter.setDefaults()
colorFilter.setValue(qrCIImage, forKey: "inputImage")
colorFilter.setValue(CIColor.black, forKey: "inputColor0")
colorFilter.setValue(CIColor.white, forKey: "inputColor1")
guard let outputImage = colorFilter.outputImage else { return nil }
let scale = size / outputImage.extent.size.width
let image_tr = outputImage.transformed(by: CGAffineTransform(scaleX: scale, y: scale))
let qrImage = UIImage(ciImage: image_tr)
return qrImage
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。