Swift Wrapper of libwebp
Swift-WebP aims to deal with image processing flexibly for WebP format in Swift unlike an image loading library; such as SDWebImage. So this library allows you to use many features libwebp has without hassles to use C API from Swift. And also you don't need to install libwebp by yourself if you install this via Carthage. This contains it inside the framework.
- libwebp: v1.0.3
- iOS Deployment Target: 8.0
- macOS Deployment Target: 10.11
- Support mutiplatform; iOS, macOS, and Linux (swift-docker)
- Support SPM
- Advanced Encoder API - WebPEncoder, WebPEncoderConfig
- Advanced Decoding API - WebPDecoder, WebPDecoderOptions
- Image inspection for WebP files - WebPImageInspector
- Progressively encoding/decoding option
- Animated WebP
let image = UIImage(named: "demo")
let encoder = WebPEncoder()
let queue = DispatchQueue(label: "me.ainam.webp")
// should encode in background
queue.async {
let data = try! encoder.encode(image, config: .preset(.picture, quality: 95))
// using webp binary data...
}
let data: Data = loadWebPData()
let encoder = WebPDecoder()
let queue = DispatchQueue(label: "me.ainam.webp")
// should decode in background
queue.async {
var options = WebPDecoderOptions()
options.scaledWidth = Int(originalWidth / 2)
options.scaledHeight = Int(originalHeight / 2)
let cgImage = try! decoder.decode(data, options: options)
let webpImage = UIImage(cgImage: cgImage)
DispatchQueue.main.async {
self.imageView.image = webpImage
}
}
Please check example projects
This library won't support CocoaPods. It's difficult to create and maintain podspec files for static libraries. (But contribution for that is always welcome.)
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate WebP into your Xcode project using Carthage, specify it in your Cartfile
:
github "ainame/Swift-WebP"
Run carthage update --use-submodules
to build the framework and drag the built `WebP.framework** into your Xcode project.
Don't forget to use --use-submodules
flag!
ainame
Swift-WebP is available under the MIT license. See the LICENSE file for more info.