效果图

代码

//MARK: -----创建二维码-----func creatEwmImage(_ ewmStr: String, ewmSize: CGSize, iconImgName: String! = nil) -> UIImage? {/*-----生成二维码-----*/let filter = CIFilter(name: "CIQRCodeGenerator")filter?.setDefaults()let data = ewmStr.data(using: .utf8)filter?.setValue(data, forKey: "inputMessage")let ciImage = filter?.outputImage   //生成二维码/*-----设置二维码大小-----*/let extent = ciImage!.extentlet scale = min(ewmSize.width / extent.width, ewmSize.height / extent.height) * UIScreen.main.scale //获取缩放比例let context = CIContext(options: nil)   //创建bitmap(位图)guard let bitImage = context.createCGImage(ciImage!, from: extent) else { return nil }let ewmWidth = extent.width * scalelet ewmHeight = extent.height * scalelet cs = CGColorSpaceCreateDeviceGray() //创建灰度空间let bitRef = CGContext(data: nil, width:Int(ewmWidth), height: Int(ewmHeight), bitsPerComponent: 8, bytesPerRow: 0, space: cs, bitmapInfo: CGImageAlphaInfo.none.rawValue)   //创建位图上下文bitRef?.interpolationQuality = .nonebitRef?.scaleBy(x: scale, y: scale)bitRef?.draw(bitImage, in: extent)//绘制guard let scaleImage = bitRef?.makeImage() else { return nil }let ewmImage = UIImage(cgImage: scaleImage)/*-----添加中间图标-----*/if (iconImgName != nil) {UIGraphicsBeginImageContextWithOptions(ewmImage.size, false, 0)let headerFrame = CGRect(x: (ewmWidth - ewmWidth / 4) / 2, y: (ewmHeight - ewmHeight / 4) / 2, width: ewmWidth / 4, height: ewmHeight / 4)ewmImage.draw(in: CGRect(x: 0, y: 0, width: ewmWidth, height: ewmHeight))let iconImage = UIImage(named: iconImgName)iconImage!.draw(in: headerFrame)let syntheticImage = UIGraphicsGetImageFromCurrentImageContext()UIGraphicsEndImageContext()return syntheticImage}return ewmImage}

使用方法

  lazy var qrImageView:UIImageView = {let qrView = UIImageView()qrView.frame = CGRect.init(x: 120, y: 160, width: 160, height: 160)return qrView}()override func viewDidLoad() {super.viewDidLoad()view.backgroundColor = .whiteview.addSubview(qrImageView)let str = "fasfkllweoiruwjfajlgaglkajkfaj32029104"//这里调用方法,拿到图片let image = self.creatEwmImage(str, ewmSize: CGSize.init(width: 170, height: 170), iconImgName: "test_image")qrImageView.image = image}

iOS 二维码生成 (Swift代码)相关推荐

  1. iOS二维码生成中间带图片Logo

    iOS二维码生成中间带图片效果图: ViewController.h 1 #import <UIKit/UIKit.h> 2 @interface ViewController : UIV ...

  2. iOS二维码生成(带logo)

    实在不好意思,昨天忘记写的<<二维码生成>>忘记写最常见的黑白二维码嵌入一张图片,一般都是公司的logo.今天补上 // // ViewController.m // 内置图片 ...

  3. iOS - 二维码生成、扫描及页面跳转

    主要内容的介绍 普通二维码生成 彩色二维码生成 带有小图标二维码生成 扫描二维码的自定义 是否开启闪光灯 从相册中获取二维码 扫描成功之后提示音 扫描成功之后的界面之间的跳转 扫描二维码界面采取了微信 ...

  4. iOS 二维码生成和扫描

    一.二维码生成 //创建二维码视图     UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(50, 100, ...

  5. iOS二维码生成及扫码

    概要 现在越来越多的应用加入二维码相关的业务,在iOS开发市场上很多开发人员都在使用第三方的扫码与生成二维码的控件,个人认为此类的第三方控件识别度不高.最近正好整理新框架的事情,研究了一下.具体代码如 ...

  6. python二维码生成识别代码_Python学习案例之二维码生成识别

    前言 在 JavaWeb 开发中,一般使用 Zxing 来生成和识别二维码,但是,Zxing 的识别有点差强人意,不少相对模糊的二维码识别率很低.不过就最新版本的测试来说,识别率有了现显著提高. 对比 ...

  7. iOS二维码生成与识别

    在 IOS7 以前,在IOS中实现二维码和条形码扫描,有两大开源组件 ZBar 与 ZXing. 总结下各自的缺点: ZBar在扫描的灵敏度上,和内存的使用上相对于ZXing上都是较优的,但是对于 & ...

  8. iOS二维码生成、识别、扫描等

    二维码扫描 前言: 最近的项目中使用到了二维码,二维码这个模块功能也完成:觉得还是有必要总结一下用来做记录.好长时间没有写二维码了都忘记在差不多了,重新拾起来还是挻快的. 二维码使用场景: 生活中有很 ...

  9. python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程

    一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错&quo ...

最新文章

  1. 刚发现的,免费领取1024G云空间
  2. 英语语法---谓语详解
  3. NLP中对困惑度感到困惑?
  4. 机器学习——数据预处理
  5. sharepoint搜索pdf文档
  6. Net中的AOP系列之《方法执行前后——边界切面》
  7. to load JavaHL Library解决方法
  8. Android Listview设置每条信息的间距
  9. LGame-0 3 Android与JavaSE游戏引擎 正式发布,新增SRPG制作模块
  10. 数据库与数据库管理系统之间的关系
  11. 电能质量:电压暂升暂降中断
  12. 工程师笔记|UPS启动期间,VxRail的这招也许能救命
  13. 阿里云薛冰洋:边缘云自动化测试解决方案—TestMaster
  14. python软件编程培训
  15. 吉林省松原市谷歌高清卫星地图下载
  16. 学习Android开发
  17. 将KITTI数据集的odometry部分velodyne的bin文件转换成rosbag
  18. 计算机网络安全技术发展,计算机网络安全技术及其发展趋势分析.doc
  19. 用python输出斐波那契数列的前20项_python输出斐波那契数列
  20. [轉]运用项目管理WBS方法成功创建网店

热门文章

  1. [转]ISE中如何将自己的verilog源代码.v或VHDL源代码.vhd封装打包成IP核?
  2. Javalin:一个轻量的 Web Framework
  3. 前端VUE图片预加载
  4. 信息级联(Information cascade)
  5. Linux系统命令详解
  6. Linux生产环境CPU使用率100%,教你定位到具体函数
  7. 面试java工程师的自我介绍
  8. linux大页卸载失败,Linux下CUDA卸载不完全与重装失败
  9. 仿淘宝客户端电商平台android初级速成-张勇-专题视频课程
  10. 华为p10和p10plus区别_华为P10和华为P10Plus怎么样?哪个更值得买?华为P10与P10Plus区别对比...