import UIKit public extension UIImage { public class func createQRCode(code: String,width: CGFloat,height: CGFloat) -> UIImage? { let data = code.data(using: String.Encoding.isoLatin1,allowLossyConversion: false) if let filter = CIFilter(name: "CIQRCodeGenerator") { filter.setValue(data,forKey: "inputMessage") filter.setValue("H",forKey: "inputCorrectionLevel") // inputCorrectionLevel 是一个单字母(@"L",@"M",@"Q",@"H" 中的一个),表示不同级别的容错率,默认为 @"M" // 错误修正容量 L水平 7%的字码可被修正 // M水平 15%的字码可被修正 // Q水平 25%的字码可被修正 // H水平 30%的字码可被修正 // 所以很多二维码的中间都有头像之类的图片但仍然可以识别出来就是这个原因 if let QRCodeImage = filter.outputImage { //消除模糊 let scaleX = width/QRCodeImage.extent.size.width let scaleY = height/QRCodeImage.extent.size.height let transformedImage = QRCodeImage.applying(CGAffineTransform.init(scaleX: scaleX,y: scaleY)) return UIImage(ciImage: transformedImage) } else { return nil } }else { return nil } } }进阶,创建彩色二维码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。