Swift二维码生成器(iOS/macOS):EFQRCode库
二维码已成为现代应用不可或缺的一部分——从身份验证到链接和联系人传输。如果您正在使用Swift开发iOS或macOS应用,无需从头编写复杂的编码算法。现成的EFQRCode库提供了便捷的API,用于创建、读取和自定义二维码。本文将介绍其功能、安装方法及使用示例。
什么是EFQRCode?
EFQRCode是一个用Swift编写的开源库。它支持iOS(9.0及以上版本)和macOS(10.11+)。主要功能包括:
- 从字符串、URL地址、vCard联系人和文本生成二维码。
- 自定义颜色、背景、尺寸和纠错级别。
- 在二维码中心添加水印(Logo、图片)。
- 创建动态二维码(GIF)。
- 从图片中解码二维码。
该库使用Core Image内置的CIFilter,但增加了许多便捷的封装和自定义选项。
通过Swift Package Manager安装
将EFQRCode包添加到您的Xcode项目:
// 在Xcode中:File → Add Packages...// 粘贴仓库URL:https://github.com/EFPrefix/EFQRCode.git// 选择版本(建议选择"Up to Next Major")或者手动在Package.swift中添加依赖:
dependencies: [ .package(url: "https://github.com/EFPrefix/EFQRCode.git", from: "6.0.0")]生成二维码的基本示例
从字符串创建二维码的最简单方法:
import EFQRCode
// 从文本创建二维码if let image = EFQRCode.generate( content: "https://pythonlib.ru", size: EFIntSize(width: 300, height: 300)) { // 使用image(CGImage)进行显示 // 例如在iOS的UIImageView中: let uiImage = UIImage(cgImage: image) imageView.image = uiImage}结果是一个标准的黑白二维码,尺寸为300x300像素。
自定义颜色和背景
您可以设置任意的前景色和背景色:
import EFQRCode
let qrImage = EFQRCode.generate( content: "Hello, Swift!", size: EFIntSize(width: 400, height: 400), backgroundColor: UIColor.yellow.cgColor, foregroundColor: UIColor.blue.cgColor, inputCorrectionLevel: .h // 最大纠错级别)参数inputCorrectionLevel可取值.l(7%)、.m(15%)、.q(25%)、.h(30%)。级别越高,损坏时可恢复的数据越多。
添加Logo(水印)
要将Logo放置在二维码中心,请使用generateWithWatermark方法:
import EFQRCode
let watermarkImage = UIImage(named: "logo")?.cgImagelet qrWithLogo = EFQRCode.generateWithWatermark( content: "https://pythonlib.ru", size: EFIntSize(width: 500, height: 500), watermark: watermarkImage, watermarkMode: .center)注意:Logo不应占据超过30%的面积,否则二维码可能无法被识别。
创建动态二维码(GIF)
EFQRCode支持生成动态二维码。例如,可以创建颜色变化的GIF:
import EFQRCode
let qrCodeGIF = EFQRCode.generateGIF( content: "Animated QR", size: EFIntSize(width: 200, height: 200), data: [someData] // 帧数组)对于简单动画,可以使用预设颜色。更多详情请参阅库的文档。
从图片中解码二维码
要从照片或截图中读取二维码:
import