【swift】ios中生成二维码
ios开发中可以自己代码生成二维码,需要使用到一个框架 CoreImage
CoreImage框架可以做滤镜,Gif动图,二维码等
先看效果图
下面直接贴上代码(OC也是下面一样的流程)
1 func createQRCode(){ 2 3 //建立一个滤镜 4 let qrFilter = CIFilter(name: "CIQRCodeGenerator") 5 //重设滤镜的初始值 6 qrFilter.setDefaults() 7 //通过KVC设置滤镜的内容(需要将字符串转为二进制数据) 8 qrFilter.setValue("我是二维码".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true), forKey: "inputMessage") 9 //输出图像(注意,此时生成的二维码尺寸为23*23左右,不清晰) 10 let ciImage = qrFilter.outputImage 11 12 13 //进一步处理,使用另外一个滤镜--单色,形变滤镜 14 let colorFilter = CIFilter(name: "CIFalseColor") 15 //重设滤镜的初始值 16 colorFilter.setDefaults() 17 //开始处理不清楚的图片 18 colorFilter.setValue(ciImage, forKey: "inputImage") 19 //设置前景色(注意只能用CIColor,使用UIColor会奔溃) 20 colorFilter.setValue(CIColor(red: 0, green: 0, blue: 0), forKey: "inputColor0") 21 //设置背景色 22 colorFilter.setValue(CIColor(red: 1, green: 1, blue: 1), forKey: "inputColor1") 23 //放大图片,放大五倍 24 let transform = CGAffineTransformMakeScale(5, 5) 25 //放大 26 let transformIamge = colorFilter.outputImage.imageByApplyingTransform(transform) 27 28 29 //用一个imageView接受图片试试效果哈(注意将CIImage转成UIImage) 30 QRCodeView.image = UIImage(CIImage: transformIamge) 31 32 }
执行这段代码的效果图就是上面展示的图片啦~