libwebp + Xcode

libwebp 的一个封装,包含 Xcode 项目。它支持 Carthage,并且也包含了 Swift Package Manager 的支持。

CI Status Carthage compatible SwiftPM compatible

要求

安装

CocoaPods

libwebp 可以通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中

pod 'libwebp'

Carthage

libwebp 可以(通过此仓库)通过 Carthage 获得。

github "SDWebImage/libwebp-Xcode"

SwiftPM

Libwebp 可以通过 Swift Package Manager 获得。

let package = Package(
    dependencies: [
        .package(url: "https://github.com/SDWebImage/libwebp-Xcode", from: "1.1.0")
    ],
    // ...
)

使用

像往常一样使用 libwebp,这只是一个添加了 Xcode 项目的仓库。

对于 Swift Package Manager 用户,建议使用模块化导入而不是 C 头文件。

@import libwebp;
// or if you don't use module
#import <webp/decode.h>
#import <webp/encode.h>
import libwebp

关于 sharpyuv

从 libwebp v1.2.3 开始,Google 将一些函数分离到一个新的独立库,名为 sharpyuv。但是,它的依赖项源代码来自 libwebp 仓库的 src 作为实现。就像 llvm-project monorepo 一样,一个仓库托管多个目标。

在 v1.3.0 之前,我们将这些头文件隐藏为内部头文件。

从 v1.3.0 开始,我们公开了 sharpyuv 的公共头文件,但不是一个独立的 CocoaPods/SPM/Carthage 目标。(将来我们可能会考虑分离目标)

如果您想使用 sharpyuv 函数,请执行类似以下操作

// This does not supports module include
#if __has_include(<sharpyuv/sharpyuv.h>)
#import <sharpyuv/sharpyuv.h>
#else
#import <libwebp/sharpyuv.h> // bundled in libwebp's modulemap
#endif
#if canImport(sharpyuv)
import sharpyuv
#else
import libwebp // bundled in libwebp's modulemap
#endif

许可

libwebp 在 BSD-3 许可下可用。 有关更多信息,请参见LICENSE 文件