加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift快速集成函数使用篇(生成二维码)

发布时间:2020-12-14 06:51:09 所属栏目:百科 来源:网络整理
导读:1 代码生成的二维码 E312AE79-44A0-472E-938C-5599B04CA92A.png 2 一行代码集成 //返回UIImage CommonFunction .CreateQRCode ( "张三" ,qrImageName: "张三的图片,可为空" ) 3 生成二维码代码 func CreateQRCode(qrString: String?,qrImageName: String?) -
  • 1 代码生成的二维码


    E312AE79-44A0-472E-938C-5599B04CA92A.png
  • 2 一行代码集成

    //返回UIImage
        CommonFunction.CreateQRCode("张三",qrImageName: "张三的图片,可为空")
  • 3 生成二维码代码

    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
  • (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读