源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-12-05 06:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:IOS Swift 开发QRCore(二维码)实例详解
1、搭个界面 [img]http://files.jb51.net/file_images/article/201612/201612041153331.png[/img] 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、运行效果 [img]http://files.jb51.net/file_images/article/201612/201612041153333.png[/img] [img]http://files.jb51.net/file_images/article/201612/201612041153334.png[/img] 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部