当前位置 : 主页 > 手机开发 > ios >

IOS Swift 开发QRCore(二维码)实例详解

来源:互联网 收集:自由互联 发布时间:2021-05-16
1、搭个界面 2、写代码 // // ViewController.swift // GeneratorQRCode // // Created by targetcloud on 2016/12/3. // Copyright 2016年 targetcloud. All rights reserved. // import UIKit class ViewController: UIViewController { @IBOutle

1、搭个界面


2、写代码

// 
// ViewController.swift 
// GeneratorQRCode 
// 
// Created by targetcloud on 2016/12/3. 
// Copyright © 2016年 targetcloud. All rights reserved. 
// 
 
import UIKit 
 
class ViewController: UIViewController { 
  @IBOutlet weak var qrImg: UIImageView! 
  @IBOutlet weak var qrContent: UITextView! 
 
  @IBAction func generatorQRImg(_ sender: Any) { 
    view.endEditing(true) 
    let str = qrContent.text ?? "" 
     
    let filter = CIFilter(name: "CIQRCodeGenerator") 
    filter?.setDefaults() 
    let data = str.data(using: String.Encoding.utf8) 
    filter?.setValue(data, forKey: "inputMessage") 
    filter?.setValue("M", forKey: "inputCorrectionLevel") 
    var image = filter?.outputImage 
    let transform = CGAffineTransform(scaleX: 10, y: 10)//处理成为一个高清图片 
    image = image?.applying(transform) 
    var resultImage = UIImage(ciImage: image!) 
     
    let centerImg = UIImage(named: "targetcloud.png") 
    resultImage = mergeImage(resultImage, centerImg: centerImg!, drawSize:CGSize(width: 80, height: 80)) 
    qrImg.image = resultImage 
  } 
   
  func mergeImage(_ sourceImage: UIImage, centerImg: UIImage,drawSize:CGSize) -> UIImage { 
    let size = sourceImage.size 
    UIGraphicsBeginImageContext(size) 
    sourceImage.draw(in: CGRect(x: 0, y: 0, width: size.width, height: size.height)) 
    centerImg.draw(in: CGRect(x: (size.width - drawSize.width) * 0.5, y: (size.height - drawSize.height) * 0.5, width: drawSize.width, height: drawSize.height)) 
    let resultImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    return resultImage! 
  } 
} 

3、运行效果



感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

网友评论