在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
二.特点
三.功能
四.优点
五.代码实现1 import UIKit 2 3 class QRCodeCreateViewController: UIViewController { 4 5 @IBOutlet weak var iconImage: UIImageView! 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 10 createQRCode() 11 } 12 13 private func createQRCode() { 14 15 // 建立一个滤镜 16 let qrFilter = CIFilter(name: "CIQRCodeGenerator") 17 // 重设滤镜的初始值 18 qrFilter.setDefaults() 19 20 // 通过 KVC 设置滤镜的内容 21 qrFilter.setValue("我的第一个二维码".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true), forKey: "inputMessage") 22 23 // 输出图像 24 let ciImage = qrFilter.outputImage 25 // 打印生成图片的大小,生成的图像 23 * 23 26 println(ciImage.extent()) 27 28 // 过滤图像单色彩以及`形变`的滤镜 29 let colorFilter = CIFilter(name: "CIFalseColor") 30 colorFilter.setDefaults() 31 32 colorFilter.setValue(ciImage, forKey: "inputImage") 33 34 // 不能直接用 UIColor 转换,会崩溃 35 // colorFilter.setValue(UIColor.redColor().CIColor, forKey: "inputColor0") 36 // 前景色 37 colorFilter.setValue(CIColor(red: 0, green: 0, blue: 0), forKey: "inputColor0") 38 // 背景色 39 colorFilter.setValue(CIColor(red: 1, green: 1, blue: 1), forKey: "inputColor1") 40 41 let transform = CGAffineTransformMakeScale(5, 5) 42 let transformImage = colorFilter.outputImage.imageByApplyingTransform(transform) 43 44 let codeImage = UIImage(CIImage: transformImage) 45 let avatarImage = UIImage(named: "avatar") 46 47 iconImage.image = insertAvatarImage(codeImage!, avatarImage: avatarImage!) 48 } 49 50 // 合成头像图像 51 private func insertAvatarImage(codeImage: UIImage, avatarImage: UIImage) -> UIImage { 52 53 let size = codeImage.size 54 55 // 1. 开启图像的上下文 56 UIGraphicsBeginImageContext(size) 57 58 // 2. 绘制二维码图像 59 codeImage.drawInRect(CGRectMake(0, 0, size.width, size.height)) 60 61 // 3. 计算头像的大小 62 let w = size.width * 0.25 63 let h = size.height * 0.25 64 let x = (size.width - w) * 0.5 65 let y = (size.height - h) * 0.5 66 67 avatarImage.drawInRect(CGRectMake(x, y, w, h)) 68 69 // 4. 从上下文中取出图像 70 let image = UIGraphicsGetImageFromCurrentImageContext() 71 72 // 5. 关闭上下文 73 UIGraphicsEndImageContext() 74 75 return image 76 } 运行结果: |
请发表评论