Swift - 生成二维码

Swift - 生成二维码,第1张

概述CIFilter 提供了各种各样的滤镜,其中 CIQRCodeGenerator 可以用来生成二维码。下面通过一个样例演示如何将字符串(链接也是字符串)生成二维码图片,同时支持在二维码中间放置个性化图标。 效果图如下: 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CIFilter 提供了各种各样的滤镜,其中 CiqrCodeGenerator 可以用来生成二维码。下面通过一个样例演示如何将字符串(链接也是字符串)生成二维码图片,同时支持在二维码中间放置个性化图标。
效果图如下: 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 import UIKit class VIEwController : UIVIEwController { overrIDe func vIEwDIDLoad() { super .vIEwDIDLoad() //不带图片的二维码图片 let imageVIEwIcon1 = UIImageVIEw (frame: CGRectMake (20,150,150)) imageVIEwIcon1.image = createQRForString( "http://www.hangge.com" , qrImagename: "" ) self .vIEw.addSubvIEw(imageVIEwIcon1) //带图片的二维码图片 imageVIEwIcon2 = (frame: CGRectMake (200,150)) imageVIEwIcon2.image = createQRForString( ) .vIEw.addSubvIEw(imageVIEwIcon2) } //创建二维码图片 createQRForString(qrString: String ?,qrImagename: ?) -> UIImage ?{ if sureQRString = qrString { stringData = sureQRString.dataUsingEnCoding( NSUTF8StringEnCoding false ) // 创建一个二维码的滤镜 qrFilter = CIFilter (name: "CiqrCodeGenerator" )! qrFilter.setValue(stringData,forKey: "inputMessage" ) qrFilter.setValue( "H" "inputCorrectionLevel" ) qrCIImage = qrFilter.outputimage // 创建一个颜色滤镜,黑白色 colorFilter = "CIFalsecolor" )! colorFilter.setDefaults() colorFilter.setValue(qrCIImage,monospace!important; min-height:auto!important; color:blue!important; background:none!important">"inputimage" ) colorFilter.setValue( CIcolor (red: 0,green: 0,blue: 0),monospace!important; min-height:auto!important; color:blue!important; background:none!important">"inputcolor0" ) (red: 1,green: 1,blue: 1),monospace!important; min-height:auto!important; color:blue!important; background:none!important">"inputcolor1" ) // 返回二维码image codeImage = ( CIImage : colorFilter.outputimage! .imageByApplyingtransform( CGAffinetransformMakeScale (5,5))) // 通常,二维码都是定制的,中间都会放想要表达意思的图片 iconImage = (named: qrImagename!) { rect = (0,codeImage.size.wIDth,codeImage.size.height) UIGraphicsBeginImageContext (rect.size) codeImage.drawInRect(rect) avatarSize = CGSizeMake (rect.size.wIDth * 0.25,rect.size.height * 0.25) x = (rect.wIDth - avatarSize.wIDth) * 0.5 y = (rect.height - avatarSize.height) * 0.5 iconImage.drawInRect( (x,y,avatarSize.wIDth,avatarSize.height)) resultimage = UIGraphicsGetimageFromCurrentimageContext () UIGraphicsEndImageContext () return resultimage } codeImage } return nil } dIDReceiveMemoryWarning() { .dIDReceiveMemoryWarning() } }

原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_909.html 总结

以上是内存溢出为你收集整理的Swift - 生成二维码全部内容,希望文章能够帮你解决Swift - 生成二维码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1079141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存