@@ -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
4448SDImageWebPCoder *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
4882UIImageView *imageView;
4983NSURL *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
6591let webpURL: URL
6692let imageView: UIImageView
6793imageView.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
70128let image: UIImage
71129let 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
76136To run the example project, clone the repo, and run ` pod install ` from the Example directory first.
0 commit comments