swift生成二维码
2015-02-03 22:28
141 查看
一.简介
二维条码/二维码是用某种特定的几何图形按一定规律在平面分布的黑白相间的图形记录数据符号信息的在编码上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息
通过图象输入设备或光电扫描设备自动识读以实现信息自动处理
二.特点
每种码制有其特定的字符集每个字符占有一定的宽度
具有一定的校验功能
三.功能
信息获取(名片、地图、WIFI密码、资料)网站跳转(跳转到微博、手机网站、网站)
广告推送(用户扫码,直接浏览商家推送的视频、音频广告)
手机电商(用户扫码、手机直接购物下单)
防伪溯源(用户扫码、即可查看生产地;同时后台可以获取最终消费地)
优惠促销(用户扫码,下载电子优惠券,抽奖)
会员管理(用户手机上获取电子会员信息、VIP服务)
手机支付(扫描商品二维码,通过银行或第三方支付提供的手机端通道完成支付
四.优点
高密度编码,信息容量大:可容纳多达1850个大写字母或2710个数字或1108个字节,或500多个汉字,比普通条码信息容量约高几十倍编码范围广:该条码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条码表示出来;可以表示多种语言文字;可表示图像数据
容错能力强,具有纠错功能:这使得二维条码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达50%仍可恢复信息 4.译码可靠性高:它比普通条码译码错误率百万分之二要低得多,误码率不超过千万分之一 5.可引入加密措施:保密性、防伪性好 6.成本低,易制作,持久耐用 7.条码符号形状、尺寸大小比例可变 8.二维条码可以使用激光或CCD阅读器识读
五.代码实现
import UIKit class QRCodeCreateViewController: UIViewController { @IBOutlet weak var iconImage: UIImageView! override func viewDidLoad() { super.viewDidLoad() createQRCode() } private func createQRCode() { // 建立一个滤镜 let qrFilter = CIFilter(name: "CIQRCodeGenerator") // 重设滤镜的初始值 qrFilter.setDefaults() // 通过 KVC 设置滤镜的内容 qrFilter.setValue("我的第一个二维码".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true), forKey: "inputMessage") // 输出图像 let ciImage = qrFilter.outputImage // 打印生成图片的大小,生成的图像 23 * 23 println(ciImage.extent()) // 过滤图像单色彩以及`形变`的滤镜 let colorFilter = CIFilter(name: "CIFalseColor") colorFilter.setDefaults() colorFilter.setValue(ciImage, forKey: "inputImage") // 不能直接用 UIColor 转换,会崩溃 // colorFilter.setValue(UIColor.redColor().CIColor, forKey: "inputColor0") // 前景色 colorFilter.setValue(CIColor(red: 0, green: 0, blue: 0), forKey: "inputColor0") // 背景色 colorFilter.setValue(CIColor(red: 1, green: 1, blue: 1), forKey: "inputColor1") let transform = CGAffineTransformMakeScale(5, 5) let transformImage = colorFilter.outputImage.imageByApplyingTransform(transform) let codeImage = UIImage(CIImage: transformImage) let avatarImage = UIImage(named: "avatar") iconImage.image = insertAvatarImage(codeImage!, avatarImage: avatarImage!) } // 合成头像图像 private func insertAvatarImage(codeImage: UIImage, avatarImage: UIImage) -> UIImage { let size = codeImage.size // 1. 开启图像的上下文 UIGraphicsBeginImageContext(size) // 2. 绘制二维码图像 codeImage.drawInRect(CGRectMake(0, 0, size.width, size.height)) // 3. 计算头像的大小 let w = size.width * 0.25 let h = size.height * 0.25 let x = (size.width - w) * 0.5 let y = (size.height - h) * 0.5 avatarImage.drawInRect(CGRectMake(x, y, w, h)) // 4. 从上下文中取出图像 let image = UIGraphicsGetImageFromCurrentImageContext() // 5. 关闭上下文 UIGraphicsEndImageContext() return image }
运行结果:
相关文章推荐
- 二维码的生成(Swift)保证生成的图片清晰
- iOS 花式二维码生成和二维码识别< Swift 版>
- swift系统自带二维码的生成
- ios开发swift中字符串生成二维码
- 教你三行代码生成高清二维码(Swift1.1)
- 二维码的生成 识别 扫描 封装(Swift)
- Swift - 生成二维码
- Swift生成二维码
- Swift3 生成二维码
- Swift_二维码、条形码的生成
- Swift之二维码的生成、识别和扫描
- iOS生成二维码(中间包含图片),长按识别二维码(Swift)
- Swift3.1二维码的生成与扫描
- Swift 3.0 生成二维码图片
- Swift快速集成函数使用篇(生成二维码)
- Swift简单实现URL生成二维码,并保存到本地相册
- swift生成二维码,扫描二维码
- Swift 生成高清二维码 这个没有前景图片只是简单的生成普通的高清二维码
- Swift 艺术二维码生成库,可添加各种奇怪的样式
- 【swift】ios中生成二维码