EFQRCode 6.2.1

EFQRCode 6.2.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2022年3月
SPM支持 SPM

EyreFreeZhiyu Zhu 维护。




EFQRCode 6.2.1

Compatible with all Platforms

EFQRCode 是一个轻量级的纯 Swift 库,用于生成带水印或图标的艺术 QR 图像,以及从图像中识别 QR 图像,灵感来自 qrcode。基于 CoreGraphicsCoreImageImageIO,EFQRCode 为您提供了更好的处理 QR 图像的方式,无论您是在 iOS、macOS、watchOS 和/或 tvOS 上。您可以通过 CocoaPods、Carthage 和/或 Swift Package Manager 集成 EFQRCode。

中文介绍

示例

演示项目

TestFlight

您可以点击下面的 TestFlight 按钮下载带有 TestFlight 的演示

App Store

您可以点击下面的 App Store 按钮下载演示,支持 iOS、tvOS 和 watchOS

您也可以点击下方的 Mac App Store 按钮来下载 macOS 的演示程序。

手动编译演示

要手动运行示例项目,请克隆仓库,演示文件位于“Examples”文件夹中。请记住,首先在终端中运行命令 sh Startup.sh 来获取所有依赖项,然后使用 Xcode 打开 EFQRCode.xcworkspace,选择你想要的目标,然后运行。

或者你可以在终端中运行以下命令

git clone [email protected]:EFPrefix/EFQRCode.git; cd EFQRCode; sh Startup.sh; open 'EFQRCode.xcworkspace'

要求

版本 需要
1.x Xcode 8.0+
Swift 3.0+
iOS 8.0+ / macOS 10.11+ / tvOS 9.0+
4.x Xcode 9.0+
Swift 4.0+
iOS 8.0+ / macOS 10.11+ / tvOS 9.0+ / watchOS 2.0+
5.x Xcode 11.1+
Swift 5.0+
iOS 8.0+ / macOS 10.11+ / tvOS 9.0+ / watchOS 2.0+
6.x Xcode 12.0+
latest Swift
iOS 9.0+ / macOS 10.10+ / tvOS 9.0+ / watchOS 2.0+

安装

CocoaPods

EFQRCode 通过 CocoaPods 提供。要安装它,只需将以下行添加到你的 Podfile

pod 'EFQRCode', '~> 6.2.1'

然后,运行以下命令

$ pod install

Carthage

重要:此 解决方案 对于 Carthage 在 Xcode 12 中部分工作来说是必要的。

Carthage 是一个去中心化的依赖管理器,它构建你的依赖项并提供二进制框架。

你可以使用以下命令通过 Homebrew 安装 Carthage

$ brew update
$ brew install carthage

要使用 Carthage 将 EFQRCode 集成到你的 Xcode 项目中,请在 Cartfile 中指定它

github "EFPrefix/EFQRCode" ~> 6.2.1

运行 carthage update 命令来构建框架,并将构建好的 EFQRCode.framework 拖入您的 Xcode 项目中。

Swift 包管理器

Swift 包管理器是一款用于自动化 Swift 代码分发的工具,且已集成到 Swift 编译器中。

一旦您已设置好 Swift 包,将 EFQRCode 添加为依赖项与将其添加到 Package.swift 文件的 dependencies 值一样简单。

dependencies: [
    .package(url: "https://github.com/EFPrefix/EFQRCode.git", .upToNextMinor(from: "6.2.1"))
]

快速入门

1. 引入 EFQRCode

在您想使用 EFQRCode 的模块中引入该模块

import EFQRCode

2. 识别

返回一个字符串数组,因为单张 CGImage 中可能存在多个 QR 码。

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.")
    }
}

3. 生成

创建 QR 码图像,基本用法

参数 描述
content 必需,QR 码的内容
size 图像的宽度和高度
backgroundColor QR 码的背景颜色
foregroundColor QR 码的前景颜色
watermark QR 码的背景图像
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!")
}

结果

4. 从 GIF 生成

使用 EFQRCode.generateGIF 创建 GIF 二维码。

参数 描述
生成器 必填,一个带有其他设置的 EFQRCodeGenerator 实例
数据 必填,编码后的输入 GIF
延迟 输出 QRCode GIF 的延迟,发射表示无变化
循环次数 在 GIF 中循环的次数,发射表示无变化
if let qrCodeData = EFQRCode.generateGIF(
    using: generator, withWatermarkGIF: data
) {
    print("Create QRCode image success.")
} else {
    print("Create QRCode image failed!")
}

您可以从示例中获取更多信息,结果将如下所示

5. 下一步

用户指南 中了解更多。

建议

  1. 请选择高对比度的前景和背景颜色组合;
  2. 为了提高 QRCode 图像的清晰度,增加 size,或使用 magnification 放大(或者也可以选择放大);
  3. 放大过度/大小过大/内容过长可能会导致失败;
  4. 建议在使用前测试 QRCode 图像;
  5. 如果有任何问题,请与我联系,无论是 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

贡献者

本项目的存在要感谢所有贡献者。[贡献力量]

备注:我们使用QRCodeSwift在watchOS生成二维码,感谢ApolloZhu

捐赠

如果你觉得这个项目给你带来了帮助,你可以买我一杯咖啡。如果你喜欢这个项目,并愿意为其进一步发展提供支持,你可以在Open Collective中选择成为支持者赞助商

支持者

感谢所有支持者!🙏[成为支持者]

赞助商

通过成为赞助商来支持此项目。您的标志将在这里显示,并带有链接到您的网站。[成为赞助商]

感谢您的支持,🙏

感谢

使用 EFQRCode 的应用

其他

示例项目和指南中的一些图片来自互联网。如有侵犯您的合法权益,请联系我们删除。

联系

Email: [email protected]

许可

EFQRCode 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。