SDWebImage

Asynchronous image downloader with cache support as a UIImageView category

MIT License

Stars
24.9K
Committers
321

Bot releases are hidden (Show)

SDWebImage - 5.3.0 - Animated Player & Data Decryptor

Published by dreampiggy almost 5 years ago

Features

Animated Image

  • Refactoring the SDAnimatedImageView with player backend called SDAnimatedImagePlayer, make it easier for common usage. #2882
  • The player use protocol based implementation, which can be used for many scenarios, like WatchKit, CALayer, or even SwiftUI. See wiki
  • Supports the control of AnimatedImage View/Player 's play rate #2885
  • Supports the runloop mode control for macOS. Which can be useful when user want to pause animation when drag the mouse, or presenting modal window #2886

Data Decryptor

  • Decrypt the encrypted image data after download and just before decoding. #2866
  • Provide a built-in convenience for Base64-encoded image data. See wiki

Response Modifier

  • Modify the HTTP response after download, paired with request modifier #2866
  • Can be used for custom HTTP header check, mock data, etc. See wiki
SDWebImage - 5.2 Patch - Fix SDWebImageIndicator on macOS

Published by dreampiggy almost 5 years ago

Fixes

  • Fix macOS SDWebImageIndicator center layout issue when indicator was initialized with 0 frame #2875
SDWebImage - 5.2 Patch - Fix SDAnimatedImageView on macOS

Published by dreampiggy almost 5 years ago

Fixes

  • Fix the regression issue that SDAnimatedImageView on macOS will change the wrong duration speed when pause and resume again #2873
  • Fix SDAnimatedImage on macOS use extra animates property check, which is not intuitive and cause extra setup before usage #2874
SDWebImage - 5.2 Patch - Fix APNG on iOS 8

Published by dreampiggy about 5 years ago

Fixes

  • Revert the change for APNG constants fix for iOS 8 devices which cause crash #2863
SDWebImage - 5.2 Patch - Fix warnings

Published by dreampiggy about 5 years ago

Fixes

  • Fix warnings when deployment target version set to iOS 13+ #2860 #2859
SDWebImage - 5.2 Patch - Fix token retain cycle

Published by dreampiggy about 5 years ago

Fixes

  • Make the SDWebImageDownloadToken to not retain the completion block so that user don't need weak-strong dance #2856 #2855

Tests

  • Try to fix the test case test15DownloaderLIFOExecutionOrder #2857
SDWebImage - 5.2.0 - Mac Catalyst && HEIC Animation

Published by dreampiggy about 5 years ago

Features

Mac Catalyst

  • Full compatible with Catalyst (UIKit for macOS)
  • Supports CococaPods and SwiftPM only. Carthage need their own toolchain upgrade in the future
  • Provide the build script to build xcframework contains Mac Catalyst variant, see Installation Guide.

Image Coder

  • Supports HEIC sequence (animated) image on iOS 13/macOS 10.15+ #2849
    • Note the HEIC animated coder does not enable by default. Add SDImageHEICCoder if you need the animation.
  • Refactor APNG and GIF coder implementation with abstract base class #2846
    • Now we use SDImageIOAnimatedCoder base class for all animated Image/IO coder implementation. Developer can get use of this as well.

Animated Image

  • Support to clear frame buffer or reset frame index when stopped for SDAnimatedImageView #2815

Fixes

  • Fix the downloader LIFO order inverse issue when adding new urls during previous url query #2852 #2823
  • Fix the macOS SDAnimatedImageRep to match Netscape standard of GIF loop count, which should use 1 when there are no loop count information #2847 #2155
SDWebImage - 5.1 Patch - Fix SDAnimatedImageView

Published by dreampiggy about 5 years ago

Fixes

  • Fix that some option mask check with local BOOL variable, error result on 32 bit device. #2819 #2817
  • Fix the macOS that SDAnimatedImageView does not works for imageScaling and imageAlignment properties #2820
  • Fix the case when SDAnimatedImageView dealloc on the fetch queue, will cause it trigger the UIKit/AppKit method on non-main queue and captured by UI Main Thread Checker #2825
SDWebImage - 5.1.0 - SwiftPM and more

Published by dreampiggy about 5 years ago

Features

Swift Package Manager

  • Add support for Swift Package Manager #2756

Options Processor

  • Supports global control on options and context for individual image request #2736

Context Option

  • Supports store original image to cache for transformer via SDWebImageContextOriginalStoreCacheType #2590
  • Add a new option SDWebImageMatchAnimatedImageClass, to ensure we always match the custom image class instead of UIImage/NSImage class #2801

Cache

  • Expose the memoryCache and diskCache object on SDImageCache, Make it useful for user who have custom property beyond SDImageCacheConfig #2779

Fixes

  • Fix SDAnimatedImageView's frame buffer bug when display link is pause #2782
  • Fix the bug that UIButton setBackgroundImage convenient method does not pass the options arg to next function call #2785
  • Add a autoreleasepool when prefetch many images #2792
  • Feature supports dynamic style indicator for iOS 13, fix indicator color on macOS 10.14+ #2753
  • Fix for CocoaPods modular headers warning by removing the custom modulemap #2749

Project

  • Follow App Store submit rule, upgrade the minimum Xcode version to Xcode 10.0 #2780
  • Provide a script target to directly build all SDWebImage framework and generate all in one XCFramework from Xcode 11 #2764

Notable Behavior Changes

  • Ensure we always callback user's completion block even when cancelled with SDWebImageErrorCancelled error code #2692

This may effect some users. In previous 4.0~5.0 version, we will not callback completion block when we receive cancel call. (including all View Category/Cache/Manager/Downloader APIs)

But from 5.1, we always callback on this case with error code SDWebImageErrorCancelled. You can filter this error code if you don't care about cancel.

This change makes usages like Dispatch Group, observer, or any logic which relay on the completion's callback become acceptable, which is not reliable and will cause issue in previous versions.

  • Change that the sd_imageProgress property to not auto-create instance by framework #2763

Now, we don't create the NSProgress object from internal method call, this does not affect user's KVO usage.

  • Change the default value of accept request header #2772

Now, the default HTTP header filed Accept, use image/*,*/*;q=0.8, instead of image/*;q=0.8.

SDWebImage - 5.0 Patch - Xcode 11 Compatible

Published by dreampiggy over 5 years ago

Fixes

  • Fix the SDAnimatedImageRep which use the deprecated API and cause compile issue on Xcode 11 #2745
SDWebImage - 4.4.7

Published by dreampiggy over 5 years ago

Fixes

  • Fix compatability for Xcode 11 #2744
  • Fix the SDAnimatedImageRep which use the deprecated API and cause compile issue on Xcode 11 #2745

Feature

  • Define SDWebImageDownloader convenience method #2633

Project

  • Update libwebp constraint to lower 2.0 #2628
SDWebImage - 3.8.3

Published by dreampiggy over 5 years ago

Fixes:

  • Fix compatability for Xcode 11 #2744
SDWebImage - 5.0 Patch - Fix Static Library integration issue

Published by dreampiggy over 5 years ago

Project

  • Fix the Static Library target issue of headers, which cause the integrated application failed to Archive because of copied headers #2741
SDWebImage - 5.0 Patch - Fix UIButton issue

Published by dreampiggy over 5 years ago

Fixes

  • Fix get button background image operation key bug #2737
  • Fix that CGImageDestinationCreateWithData 0 count arg will log a warning #2739

Tests

  • Fix the example NSLog issue, and replace the unavailable test image dataset #2740
SDWebImage - 5.0 Patch - Fix animated image issue

Published by dreampiggy over 5 years ago

Fixes

  • Fix SDWebImageDecodeFirstFrameOnly flag is ignored when image loaded from cache #2725
  • Fix that SDAnimatedImageView initWithImage will skip the initialize logic and crash #2728
  • Replace if judge with MAX() function in scale less than 1 #2710

Project

  • Replace the private prefix header files with the manually import for each implementation files #2723

Tests

  • Added many test case to ensure the code behavior and coverage #2711

Documentation

  • Update the documentation coverage for jazzy. Use the correct format to provide class/protocol/type API Documentation #2722
SDWebImage - 5.0 Patch - Fix macOS render issue

Published by dreampiggy over 5 years ago

Fixes

  • Fix the bug of SDAnimatedImageView on macOS, which can only render SDAnimatedImage but not normal NSImage (including animated image) #2706
  • Fix that CGImageCreateDecoded:orientation: use the wrong aspect ratio when orientation is left/leftMirrored/right/rightMirrored #2708
  • Fix one bug of sd_colorAtPoint:, which set the alpha value default to 255 and should be 1. #2708

Documentation

  • Fixes typo in SDImageCacheConfig maxDiskAge info #2699
SDWebImage - 5.0 Patch - Fix APNG && transformer issue

Published by dreampiggy over 5 years ago

Fixes

  • Fixes crash for apng coder when properties are nil #2691
  • Fix rounded corner bug which leads to image upside down #2673
  • Fix tint image bug which leads to image upside down #2674

Project

  • Fix the Travis-CI script about code coverage submit #2676
SDWebImage - 5.0.0 Major release - Customizable SDWebImage

Published by dreampiggy over 5 years ago

See all tickets marked for the 5.0.0 release

Features

Animated Image

  • Introduce SDAnimatedImageView and SDAnimatedImage for full stack solution of animated images.
  • Supports custom coders for nearly every animated image format.
  • Supports progressive loading for animated images.
  • iOS/tvOS/macOS cross-platform support.

Transformer

  • Using transformer to apply image processing after image was loaded.
  • Built-in transformer for common usage: Rounded Corner, Resize, Crop, Flip, Rotate, Tint Color, Blur Effect, Core Image Filter...
  • Convenient category methods for UIImage/NSImage

Custom Loader

  • Using SDImageLoader protocol to implements your own image loader.
  • Not limited on HTTP, you can even using SDWebImage with PhotoKit and third-party SDKs.
  • Supports multiple loaders at the same time when using SDImageLoadersManager.

Custom Cache

  • Using SDImageCache protocol to implement your own image cache.
  • Standalone disk cache and memory cache class for advanced usage and customization.
  • Supports multiple caches at the same time when using SDImageCachesManager.

Indicator

  • Use indicator to provide a loading view, customizable.
  • Built-in Activity Indicator and Progress Indicator.
  • iOS/tvOS/macOS cross-platform support.

Plugins

Improvements

Swift

  • Better Swift support with some manual renaming APIs.
  • Full nullability annotation.
  • Using class property for shared instance.
  • Using NS_TYPED_ENUM and NS_STRING_ENUM for better generated APIs.

API

  • Using context option to control detail behavior for each image request beyond the limit of enums.
  • Using prefetcher to manage token (list of URL requests) to avoid conflict.
  • Use request modifier to modify constructed URLRequest.

Project

  • Supports the latest Xcode 10.
  • Supports iOS 8.0+/tvOS 9.0+/watchOS 2.0+/macOS 10.10+.
  • MapKit support for Carthage moved the standalone SDWebImageMapKit target.
  • Using module map and umbrella headers.

Migration

Check 5.0 migration guide for the migration from 4.x to 5.x.

SDWebImage - 5.0.0-beta6 - 5.0 Final Beta

Published by dreampiggy over 5 years ago

Fixes

  • Fix the issue that SDWebImagePrefetch in 5.x, will submit all prefetch URLs to manager without any concurrent limit #2631
  • Fix the current transformer cache key generating rules, try to keep the image file extension #2635

Project

  • Move some internal classes into private header files, make it easy to maintain the code #2634
SDWebImage - 4.4.6 - Fix CocoaPods 1.6.0 && WebP issue

Published by dreampiggy over 5 years ago

Fixes

  • Fix the unused user header search path warning for CocoaPods 1.6.0. #2622
  • Fix that WebP with custom ICC Profile will randomly crash, because CGColorSpaceCreateWithICCProfile does not copy the ICC data pointer #2621
  • Fix the issue when WebP contains the ICC Profile with colorSpace other than RGB, which cause the CGImageCreate failed #2627

Project

  • Update the libwebp dependency to support using 1.0 version and above #2625

Performances

  • Nil imageData before decode process to free memory #2624