@@ -176,6 +176,9 @@ let image = SDImageWebPCoder.shared.decodedImage(with: data, options: [.decodeTh
176
176
// WebP image encoding
177
177
UIImage *image;
178
178
NSData *webpData = [[SDImageWebPCoder sharedCoder ] encodedDataWithImage: image format: SDImageFormatWebP options: nil ] ;
179
+ // Animated encoding
180
+ NSArray<SDImageFrames * > * frames;
181
+ NSData * awebpData = [[ SDImageWebPCoder sharedCoder] encodedDataWithFrames: frames loopCount:0 format: SDImageFormatWebP options: nil ] ;
179
182
// Encode Quality
180
183
NSData * lossyWebpData = [[ SDImageWebPCoder sharedCoder] encodedDataWithImage: image format: SDImageFormatWebP options:@{SDImageCoderEncodeCompressionQuality : @(0.1)}] ; // [ 0, 1] compression quality
181
184
NSData * limitedWebpData = [[ SDImageWebPCoder sharedCoder] encodedDataWithImage: image format: SDImageFormatWebP options:@{SDImageCoderEncodeMaxFileSize : @(1024 * 10)}] ; // v0.6.0 feature, limit output file size <= 10KB
@@ -187,6 +190,9 @@ NSData *limitedWebpData = [[SDImageWebPCoder sharedCoder] encodedDataWithImage:i
187
190
// WebP image encoding
188
191
let image: UIImage
189
192
let webpData = SDImageWebPCoder.shared.encodedData(with: image, format: .webP, options: nil)
193
+ // Animated encoding
194
+ let frames: [SDImageFrame]
195
+ let awebpData = SDImageWebPCoder.shared.encodedData(with: frames, loopCount: 0, format: .webP, options: nil)
190
196
// Encode Quality
191
197
let lossyWebpData = SDImageWebPCoder.shared.encodedData(with: image, format: .webP, options: [.encodeCompressionQuality: 0.1]) // [0, 1] compression quality
192
198
let limitedWebpData = SDImageWebPCoder.shared.encodedData(with: image, format: .webP, options: [.encodeMaxFileSize: 1024 * 10]) // v0.6.0 feature, limit output file size <= 10KB
@@ -212,6 +218,32 @@ let thumbnailWebpData = SDImageWebPCoder.shared.encodedData(with: image, format:
212
218
213
219
See more documentation in [ SDWebImage Wiki - Coders] ( https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#custom-coder-420 )
214
220
221
+ ### Animated WebP Encoding (0.10+)
222
+
223
+ + Objective-c
224
+
225
+ ``` objective-c
226
+ // Animated encoding
227
+ NSMutableArray <SDImageFrames *> *frames = [NSMutableArray array ];
228
+ for (size_t i = 0 ; i < images.count; i++) {
229
+ SDImageFrame *frame = [SDImageFrame frameWithImage:images[i] duration:0.1];
230
+ [frames appendObject:frame];
231
+ }
232
+ NSData *awebpData = [[SDImageWebPCoder sharedCoder ] encodedDataWithFrames: frames loopCount:0 format: SDImageFormatWebP options: nil ] ;
233
+ ```
234
+
235
+ + Swift
236
+
237
+ ```swift
238
+ // Animated encoding
239
+ var frames: [SDImageFrame] = []
240
+ for i in [0..<images.count] {
241
+ let frame = SDImageFrame(image: images[i], duration: 0.1)
242
+ frames.append(frame)
243
+ }
244
+ let awebpData = SDImageWebPCoder.shared.encodedData(with: frames, loopCount: 0, format: .webP, options: nil)
245
+ ```
246
+
215
247
### Advanced WebP codec options (0.8+)
216
248
217
249
The WebP codec [ libwebp] ( https://developers.google.com/speed/webp/docs/api ) we use, supports some advanced control options for encoding/decoding. You can pass them to libwebp by using the wrapper top level API:
0 commit comments