93 lines
3.2 KiB
Markdown
93 lines
3.2 KiB
Markdown
# KingfisherWebP
|
|
|
|
[](https://travis-ci.org/Yeatse/KingfisherWebP)
|
|
[](http://cocoapods.org/pods/KingfisherWebP)
|
|
[](http://cocoapods.org/pods/KingfisherWebP)
|
|
[](http://cocoapods.org/pods/KingfisherWebP)
|
|
|
|
# Description
|
|
|
|
KingfisherWebP is an extension of the popular library [Kingfisher](https://github.com/onevcat/Kingfisher), providing an ImageProcessor and CacheSerializer for you to conveniently handle the [WebP format](https://developers.google.com/speed/webp/). Animated WebP is also supported!
|
|
|
|
The library works seamlessly with `Kingfisher`. To display the webp images from network, simply add `WebPProcessor` and `WebPSerializer` to your `KingfisherOptionsInfo`:
|
|
|
|
```swift
|
|
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:
|
|
|
|
```swift
|
|
// 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:
|
|
```swift
|
|
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.
|
|
|
|
|
|
## Example
|
|
|
|
To run the example project, clone the repo, and run `pod install` from the Example directory first.
|
|
|
|
## Requirements
|
|
|
|
iOS 12 or above
|
|
|
|
## Installation
|
|
|
|
### CocoaPods
|
|
|
|
KingfisherWebP is available through [CocoaPods](http://cocoapods.org). To install it, simply add the following line to your Podfile:
|
|
|
|
```ruby
|
|
pod "KingfisherWebP"
|
|
```
|
|
|
|
### Swift Package Manager
|
|
|
|
From Xcode 11, you can use [Swift Package Manager](https://swift.org/package-manager/) to add KingfisherWebP to your project. The "package repository url" of KingfisherWebP is `https://github.com/yeatse/KingfisherWebP.git`.
|
|
|
|

|
|
|
|
### Carthage
|
|
|
|
You can also add KingfisherWebP using [Carthage](https://github.com/Carthage/Carthage). Note that KingfisherWebP is built on top of [libwebp](https://chromium.googlesource.com/webm/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
|
|
```
|
|
|
|
|
|
## Author
|
|
|
|
Yang Chao, iyeatse@gmail.com
|
|
|
|
## License
|
|
|
|
KingfisherWebP is available under the MIT license. See the LICENSE file for more info.
|