KingfisherWebP
描述
KingfisherWebP 是流行的库 Kingfisher 的扩展,为您提供 ImageProcessor 和 CacheSerializer,以便您方便地处理 WebP 格式。
此库与 Kingfisher
无缝协作。要显示来自网络的 webp 图片,只需将 WebPProcessor
和 WebPSerializer
添加到 KingfisherOptionsInfo
即可
let url = URL(string: "url_of_your_webp_image")
imageView.kf.setImage(with: url, options: [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)])
为了方便起见,您可以将它设为所有与 KingfisherManager
相关方法的全局默认选项
// somewhere after your application launches...
KingfisherManager.shared.defaultOptions += [
.processor(WebPProcessor.default),
.cacheSerializer(WebPSerializer.default)
]
// You can now use webp in Kingfisher like any other format
imageView.kf.setImage(with: url)
一些图像服务器可能期望 "Accept"
标头包含 "image/webp"
。您可以通过这样做来将此标头包含在所有 Kingfisher 请求中
let modifier = AnyModifier { request in
var req = request
req.addValue("image/webp */*", forHTTPHeaderField: "Accept")
return req
}
KingfisherManager.shared.defaultOptions += [
.requestModifier(modifier),
// ... other options
]
如果图像数据不是 webp 格式,将使用 Kingfisher 中的默认处理器和序列化器。
示例
要运行示例项目,请克隆仓库,然后从 "Example" 目录运行 pod install
。
需求
iOS 12 或更高版本
安装
CocoaPods
KingfisherWebP 可以通过 CocoaPods 获得。要安装它,只需在 Podfile 中添加以下行:
pod "KingfisherWebP"
Swift 包管理器
从 Xcode 11 开始,您可以使用 Swift 包管理器 将 KingfisherWebP 添加到项目中。KingfisherWebP 的 "package repository url" 是 https://github.com/yeatse/KingfisherWebP.git
。
Carthage
您还可以使用Carthage来添加KingfisherWebP。请注意,KingfisherWebP是建立在libwebp项目之上的,因此您应该在您的Cartfile
中也添加libwebp
依赖项。
github "yeatse/KingfisherWebP" ~> 1.4.0
github "onevcat/Kingfisher" ~> 7.0.0
github "SDWebImage/libwebp-Xcode" ~> 1.1.0
作者
许可协议
KingfisherWebP采用MIT协议许可。有关更多信息,请参阅LICENSE文件。