KingfisherWebP is an extension of the popular library Kingfisher, providing an ImageProcessor and CacheSerializer for you to conveniently handle the WebP format.
The library works seamlessly with Kingfisher
. To display the webp images from network, simply add WebPProcessor
and WebPSerializer
to your KingfisherOptionsInfo
:
let url = URL(string: "url_of_your_webp_image")
imageView.kf.setImage(with: url, options: [.processor(WebPProcessor.default), .cacheSerializer(WebPSerializer.default)])
For convenience, you may set it as a global default option to all KingfisherManager
related methods:
// 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)
Some image servers may expect the "Accept"
header to include "image/webp"
.
You can include this header to all Kingfisher requests by doing:
let modifier = AnyModifier { request in
var req = request
req.addValue("image/webp */*", forHTTPHeaderField: "Accept")
return req
}
KingfisherManager.shared.defaultOptions += [
.requestModifier(modifier),
// ... other options
]
If the image data is not in webp format, the default processor and serializer in Kingfisher
will be used.
To run the example project, clone the repo, and run pod install
from the Example directory first.
iOS 12 or above
KingfisherWebP is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "KingfisherWebP"
From Xcode 11, you can use Swift Package Manager to add KingfisherWebP to your project. The "package repository url" of KingfisherWebP is https://github.com/yeatse/KingfisherWebP.git
.
You can also add KingfisherWebP using Carthage. Note that KingfisherWebP is built on top of libwebp project, so in your Cartfile
you should add libwebp
dependency as well:
github "yeatse/KingfisherWebP" ~> 1.4.0
github "onevcat/Kingfisher" ~> 7.0.0
github "SDWebImage/libwebp-Xcode" ~> 1.1.0
Yang Chao, iyeatse@gmail.com
KingfisherWebP is available under the MIT license. See the LICENSE file for more info.