2 一行代码集成
//返回UIImage
CommonFunction.CreateQRCode("张三",qrImageName: "张三的图片,可为空")
func CreateQRCode(qrString: String?,qrImageName: String?) -> UIImage?{ if let sureQRString = qrString { let stringData = sureQRString.dataUsingEncoding(NSUTF8StringEncoding,allowLossyConversion: false) // 创建一个二维码的滤镜 let qrFilter = CIFilter(name: "CiqrCodeGenerator") qrFilter!.setValue(stringData,forKey: "inputMessage") qrFilter!.setValue("H",forKey: "inputCorrectionLevel") let qrCIImage = qrFilter!.outputimage // 创建一个颜色滤镜,黑白色 let colorFilter = CIFilter(name: "CIFalseColor") colorFilter!.setDefaults() colorFilter!.setValue(qrCIImage,forKey: "inputimage") colorFilter!.setValue(CIColor(red: 0,green: 0,blue: 0),forKey: "inputColor0") colorFilter!.setValue(CIColor(red: 1,green: 1,blue: 1),forKey: "inputColor1") // 返回二维码image let codeImage = UIImage(CIImage: colorFilter!.outputimage!.imageByApplyingTransform(CGAffineTransformMakeScale(5,5))) // 通常,二维码都是定制的,中间都会放想要表达意思的图片 if let iconImage = UIImage(named: qrImageName!) { let rect = CGRectMake(0,codeImage.size.width,codeImage.size.height) UIGraphicsBeginImageContext(rect.size) codeImage.drawInRect(rect) let avatarSize = CGSizeMake(rect.size.width * 0.25,rect.size.height * 0.25) let x = (rect.width - avatarSize.width) * 0.5 let y = (rect.height - avatarSize.height) * 0.5 iconImage.drawInRect(CGRectMake(x,y,avatarSize.width,avatarSize.height)) let resultimage = UIGraphicsGetimageFromCurrentimageContext() UIGraphicsEndImageContext() return resultimage } return codeImage } return nil }
文/Hcy_ 原文链接:http://www.jianshu.com/p/8872f96587e9
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。