Swiftpack.co - Yeatse/KingfisherWebP as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by Yeatse.
Yeatse/KingfisherWebP 1.4.0
Elegantly handle WebP format with Kingfisher.
⭐️ 243
🕓 46 weeks ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/Yeatse/KingfisherWebP.git", from: "1.4.0")

KingfisherWebP

CI Status Version License Platform

Description

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.

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. To install it, simply add the following line to your Podfile:

pod "KingfisherWebP"

Swift Package Manager

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.

SPM screenshot

Carthage

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

Author

Yang Chao, iyeatse@gmail.com

License

KingfisherWebP is available under the MIT license. See the LICENSE file for more info.

GitHub

link
Stars: 244
Last commit: 44 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Dependencies

Release Notes

1.2.0 - Happy Chinese New Year
1 year ago

From this version, we updated Kingfisher dependency to 6.1.0, together with some other minor changes described as below:

  • Add isLossy and compressionQuality options to WebPSerializer so that we can control the size of image caches. #44
  • Add partial support for macOS. Note that currently only still images are supported. #48
  • Refactor the folder structure for Carthage to function properly. #42
  • Make unit tests work again!

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics