EFQRCode 是一个轻量级的纯 Swift 库,用于生成带有水印或图标的风格化二维码图像,并从图像中识别二维码,灵感来源于 qrcode。基于 CoreGraphics
、CoreImage
和 ImageIO
,无论是在 iOS、macOS、watchOS 和/或 tvOS 上,EFQRCode 都为您提供了一种更好的方式来处理您应用中的二维码。您可以通过 CocoaPods、Carthage 和/或 Swift Package Manager 集成 EFQRCode。
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
您可以点击下面的 App Store
按钮下载演示,支持 iOS、tvOS 和 watchOS
您也可以点击下面的 Mac App Store
按钮下载 macOS 演示
要手动运行示例项目,请克隆仓库,演示位于 'Examples' 文件夹中,记住在终端中运行命令 sh Startup.sh
以首先获取所有依赖项,然后使用 Xcode 打开 EFQRCode.xcworkspace
并选择您想要的目标,运行。
或者您可以在终端中运行以下命令
git clone git@github.com:EFPrefix/EFQRCode.git; cd EFQRCode; sh Startup.sh; open 'EFQRCode.xcworkspace'
EFQRCode 可通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile
pod 'EFQRCode', '~> 6.2.2'
然后,运行以下命令
$ pod install
重要提示:对于 Carthage 在 Xcode 12 中勉强工作,这个 workaround 是必要的。
Carthage 是一个去中心化的依赖管理器,它构建您的依赖项并为您提供二进制框架。
您可以使用 Homebrew 使用以下命令安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 将 EFQRCode 集成到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "EFPrefix/EFQRCode" ~> 6.2.2
运行 carthage update
以构建框架,并将构建的 EFQRCode.framework
拖到您的 Xcode 项目中。
Swift Package Manager 是一个用于自动化 Swift 代码分发的工具,并已集成到 Swift 编译器中。
一旦您设置好 Swift 包,添加 EFQRCode 作为依赖项就像将其添加到您的 Package.swift
的 dependencies
值中一样容易。
dependencies: [
.package(url: "https://github.com/EFPrefix/EFQRCode.git", .upToNextMinor(from: "6.2.2"))
]
在您想要使用它的地方导入 EFQRCode 模块
import EFQRCode
由于单个 CGImage
中可能存在多个二维码,因此返回一个字符串数组
if let testImage = UIImage(named: "test.png")?.cgImage {
let codes = EFQRCode.recognize(testImage)
if !codes.isEmpty {
print("There are \(codes.count) codes")
for (index, code) in codes.enumerated() {
print("The content of QR Code \(index) is \(code).")
}
} else {
print("There is no QR Codes in testImage.")
}
}
创建二维码图像,基本用法
参数 | 描述 |
---|---|
content |
必需,二维码的内容 |
size |
图像的宽度和高度 |
backgroundColor |
二维码的背景颜色 |
foregroundColor |
二维码的前景颜色 |
watermark |
二维码的背景图像 |
if let image = EFQRCode.generate(
for: "https://github.com/EFPrefix/EFQRCode",
watermark: UIImage(named: "WWF")?.cgImage
) {
print("Create QRCode image success \(image)")
} else {
print("Create QRCode image failed!")
}
结果
使用 EFQRCode.generateGIF
创建 GIF 二维码。
参数 | 描述 |
---|---|
generator |
必需,带有其他设置的 EFQRCodeGenerator 实例 |
data |
必需,编码后的输入 GIF |
delay |
输出二维码 GIF 延迟,省略表示无更改 |
loopCount |
GIF 中循环的次数,省略表示无更改 |
if let qrCodeData = EFQRCode.generateGIF(
using: generator, withWatermarkGIF: data
) {
print("Create QRCode image success.")
} else {
print("Create QRCode image failed!")
}
您可以从演示中获取更多信息,结果将如下所示
从 用户指南 了解更多信息。
size
,或使用 magnification
(代替)放大;Issue
和 Pull request
。PS 的 PS:如果这个工具对您有用,我希望您可以点击 Star
按钮,谢谢,QAQ...
平台/语言 | 链接 |
---|---|
Objective-C | https://github.com/z624821876/YSQRCode |
Java | https://github.com/SumiMakito/AwesomeQRCode |
JavaScript | https://github.com/SumiMakito/Awesome-qr.js |
Kotlin | https://github.com/SumiMakito/AwesomeQRCode-Kotlin |
Python | https://github.com/sylnsfar/qrcode |
感谢所有已经为我们做出贡献的人,这个项目才得以存在。 [贡献]
如果您认为这个项目对您有所帮助,您可以请我喝杯咖啡。如果您喜欢这个项目并愿意为它的进一步开发提供支持,您可以选择在 Open Collective 中成为 Backer
。感谢我们所有的赞助者! 🙏 [成为赞助者]
演示项目和指南中的部分图片来自互联网。如果存在侵犯您的合法权益,请联系我们删除。
EFQRCode 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。