-
Fix #1941 by placing a lock to avoid multi-thread issue for SDWebImageCombinedOperation cancelBlock
-
Add the animated GIF encoding support for SDWebImageGIFCoder on macOS(use NSImage's API)
-
Provide a way to fix libwebp’s bug during WebP progressive decoding f…
-
…easons (strangely sometimes the data doesn't get written to disk)
-
…itecture (macOS and iPhone simulator). It kept the previous decoded partial bitmap and will cause current image looks strange.
-
Allow user to provide reading options such as mapped file to improve performance in SDImageCache disk cache
-
…so cleaning the schemes that have built that. The problem now with Xcode 9 is that those targets already contain the libwebp and FLAnimatedImage files, Xcode will not rebuild the framework from the proper sources and then we will have duplicate symbols with the libwebp and FLAnimatedImage files that are also compiled by CocoaPods separately.
-
Give back our GIF category animation support since we now use plugin coders
-
…s will not affect FLAnimatedImageView which just create the first frame. 1. Change default coders to [IOCoder, WebPCoder] 2. Add back our previous GIF decoding code, with loop count support 3. Add GIF encoding code for animation 4. Modify IOCoder for GIF format because FLAnimatedImageView need just use the first frame
-
Feature: refactor decoding code and provide decoding plugin
-
- open the decoding/encoding procedures to the users - switch from hardcoded decoding/encoding to pluginable decoders/encoders (builtin + user created) - `SDWebImageCodersManager` is a singleton holding an array of `SDImageCoder` (protocol). Even though a singleton is not necesarily a good pattern, in this case it eliminates dealing with passing this array around - uses a priority queue behind scenes, which means the latest added coders have priority. - the priority is crucial when encoding/decoding something, we go through the list and ask each coder if they can handle the current data (see `canDecodeFromData:`, `canEncodeToFormat:`, `canIncrementallyDecodeFromData:`) - each coder must conform to this protocol `SDImageCoder` describing all the required behavior for a coder - we provide 3 built-in coders: `SDWebImageImageIOCoder` (for JPEG, PNG, TIFF), `SDWebImageGIFCoder` (for GIF), `SDWebImageWebPCoder` (for WebP and animated WebP) - the user of SDWebImage can create custom coders by conforming to `SDImageCoder` and adding the coders to `SDWebImageCodersManager`. See `addCoder:` or `removeCoder:` or `coders` getter to get the array - in order to preserve backwards compatibility, the UIImage categories were preserved, calling the new coders APIs described above
-
… in SDImageCache disk cache
-
Change finished check from equal to equal or greater than to protect …
-
Static WebP decoding a little enhancement. Do not need create WebP it…
-
Fix SDWebImageDownloaderOperation not call done when use SDWebImageDownloaderIgnoreCachedResponse
-
Fix SDWebImage v4 can not import libwebp framework's header files.
-
Adopt the previous version behavior about SDWebImageDownloaderIgnoreC…
-
Fix FLAnimatedImageView mixed local and global import
-
…se and SDWebImageRefreshCached without hack code
-
Use CGImageSourceCreateIncremental to perform progressive decoding in…
-
Set UIButton's placeholer-image even if the url is nil
-
Performance enhancement related to single WebP and animated WebP decoding...
-
…code partial data each time from the beginning to improve performance and remove that gray background
-
1. Change the code to not decode WebP images created in SD because it has been decoded 2. Add @autoreleasepool for animated WebP decoding do-while loop to reduce memory peak