Skip to content

Commit f173266

Browse files
committed
Update the readme about detail coders usage, accept header modification, etc
1 parent df820a0 commit f173266

File tree

1 file changed

+68
-8
lines changed

1 file changed

+68
-8
lines changed

README.md

Lines changed: 68 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,40 +37,100 @@ github "SDWebImage/SDWebImageWebPCoder"
3737

3838
## Usage
3939

40+
### Add Coder
41+
42+
Before using SDWebImage to load WebP images, you need to register the WebP Coder to your coders manager. This step is recommended to be done after your App launch (like AppDelegate method).
43+
4044
+ Objective-C
4145

4246
```objective-c
4347
// Add coder
4448
SDImageWebPCoder *webPCoder = [SDImageWebPCoder sharedCoder];
4549
[[SDImageCodersManager sharedManager] addCoder:webPCoder];
50+
```
51+
52+
+ Swift
53+
54+
```swift
55+
// Add coder
56+
let WebPCoder = SDImageWebPCoder.shared
57+
SDImageCodersManager.shared.addCoder(WebPCoder)
58+
```
59+
60+
### Modify HTTP Accept Header
61+
62+
Some of image server provider may try to detect the client supported format, by default, SDWebImage use `image/*,*/*;q=0.8` for [Accept](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept). You can modify it with the `image/webp` as well.
63+
64+
+ Objective-C
4665

66+
```objective-c
67+
[[SDWebImageDownloader sharedDownloader] setValue:@"image/webp,image/*,*/*;q=0.8" forHTTPHeaderField:@"Accept"];
68+
```
69+
70+
+ Swift
71+
72+
```swift
73+
SDWebImageDownloader.shared.setValue("image/webp,image/*,*/*;q=0.8", forHTTPHeaderField:"Accept")
74+
```
75+
76+
### Loading
77+
78+
+ Objective-C
79+
80+
```objective-c
4781
// WebP image loading
4882
UIImageView *imageView;
4983
NSURL *webpURL;
5084
[imageView sd_setImageWithURL:webpURL];
51-
52-
// WebP image encoding
53-
UIImage *image;
54-
NSData *webpData = [[SDImageWebPCoder sharedCoder] encodedDataWithImage:image format:SDImageFormatWebP options:nil];
5585
```
5686
5787
+ Swift
5888
5989
```swift
60-
// Add coder
61-
let WebPCoder = SDImageWebPCoder.shared
62-
SDImageCodersManager.shared.addCoder(WebPCoder)
63-
6490
// WebP online image loading
6591
let webpURL: URL
6692
let imageView: UIImageView
6793
imageView.sd_setImage(with: webpURL)
94+
```
6895

96+
### Decoding
97+
98+
+ Objective-C
99+
100+
```objective-c
101+
// WebP image decoding
102+
NSData *webpData;
103+
UIImage *image = [[SDImageWebPCoder sharedCoder] decodedImageWithData:webpData options:nil];
104+
```
105+
106+
+ Swift
107+
108+
```swift
109+
// WebP image decoding
110+
let webpData: Data
111+
let image = SDImageWebPCoder.shared.decodedImage(with: data, options: nil)
112+
```
113+
114+
### Encoding
115+
116+
+ Objective-c
117+
118+
```objective-c
119+
// WebP image encoding
120+
UIImage *image;
121+
NSData *webpData = [[SDImageWebPCoder sharedCoder] encodedDataWithImage:image format:SDImageFormatWebP options:nil];
122+
```
123+
124+
+ Swift
125+
126+
```swift
69127
// WebP image encoding
70128
let image: UIImage
71129
let webpData = SDImageWebPCoder.shared.encodedData(with: image, format: .webP, options: nil)
72130
```
73131

132+
See more documentation in [SDWebImage Wiki - Coders](https://github.com/SDWebImage/SDWebImage/wiki/Advanced-Usage#custom-coder-420)
133+
74134
## Example
75135

76136
To run the example project, clone the repo, and run `pod install` from the Example directory first.

0 commit comments

Comments
 (0)