SDWebImage

Asynchronous image downloader with cache support as a UIImageView category

MIT License

Stars
24.9K
Committers
321

Bot releases are visible (Hide)

SDWebImage - 5.8.2 - Fix iOS 14 Beta

Published by dreampiggy over 4 years ago

Fixes

  • Fix the issue that SDAnimatedImageView can not render static image on iOS 14. #3043
  • Fix the maxPixelSize logic issue will cause a upscale in SDImageIOAnimatedCoder #3039
SDWebImage - 5.8.1 - 5.8 Patch

Published by dreampiggy over 4 years ago

Features

  • Added the convenient transition with duration APIs #3027

Fixes

  • Fix the issue that the NSURLRequest method should not be nil, which may cause Crash #3037
  • Fix the issue when maxPixelSize is larger than image size will cause a upscale in ImageIO #3015
  • Change to use kCGImageSourceCreateThumbnailFromImageAlways to solve the issue when HEIC/JPEG contains an embed thumbnail but its size is much smaller than provided maxPixelSize #3038
  • SDAnimatedImagePlayer seek returning nil image fix #3030
  • Fixing Typos throughout project #3026
SDWebImage - 5.8.0 - Transform original cache and more

Published by dreampiggy over 4 years ago

Features

Transformer

  • Add query original cache for transformed image without downloading #2992
  • This can be used to query the original image from cache then do transforming when transformed key cache miss, without any downloading happened.

Animated Image

  • Added autoplay control property to AnimatedImageView (autoPlayAnimatedImage) #3003

Manager

  • Mark the black list formal error code, support remove the failed URL from black list #2997
  • Polish the error description between image decode failed and image size is 0 #3005

Downloader

  • Add the convenient request/response modifier, which provide HTTP header directly #2990

View Category

  • Added the convenient transition options for macOS user. Deprecate the old timingFunction, which can use System API to achieve #2985
  • Feature pass the set operation key into context option from upstream. Fix the potential retain cycle if user use custom manager #2986

Coder

  • Feature: Encoding options supports embed thumbnail (works for JPEG/HEIF/AVIF) #2988

Project

  • Support the SwiftPM Objective-C user to use #improt <SDWebImage/SDWebImage.h> #2987
SDWebImage - 5.7.4 - Fix Prefetcher cancel

Published by dreampiggy over 4 years ago

Fixes

  • Fix the issue that NSOperation conforms to SDWebImageOperation check failed. Fix cancelling prefetcher hung up #2999 #2998
SDWebImage - 5.7.3 - Fix Animated Encoding Options

Published by dreampiggy over 4 years ago

Fixes

  • Fix the encoding options which does not passthrough the correct value to ImageIO #2989
SDWebImage - 5.7.2 - GIF OOM optimization

Published by dreampiggy over 4 years ago

Fixes

  • SDAnimatedImageView animation rendering should not use CGContext force decoding, use kCGImageSourceShouldCacheImmediately instead which can avoid OOM for large number of GIFs #2977
  • Fix that when first play animated image and use maxBufferSize to 0, the calculation does not works (The CGImage is nil) #2982

Project

  • Rename the private header UIColor+HexString and NSBezierPath+SDRoundedCorners with SD prefix, to avoid the conflict when using CocoaPods #2983
SDWebImage - 5.7.1 - 5.7 Patch

Published by dreampiggy over 4 years ago

Fixes

  • Don't copy attributes from originalImage to transformedImage when caching transformedImage #2976. Thanks @bdaz
  • Fix the wrong value assignment for SDAnimatedImageView code on macOS, warning #2974
SDWebImage - 5.7.0 - Query Cache Type and Encoding Options

Published by dreampiggy over 4 years ago

Features

Cache

  • Added the async version API to query disk image data only
  • Added the sync API to query disk image with context and options, which matches the async version

Coder

  • Feature supports encoding options like max file size, max pixel size, as well as background color when using JPEG for alpha image #2972
  • You can use .encodeMaxFileSize to limit the desired lossy file size, better than compression quality
  • You can use .encodeMaxPixelSize to limit the pixel size, like thumbnail encoding

Transformer

  • Refactory the current thumbnail && transformer about cache key. Developer should have the API to calculate the cache key from thumbnail or transformer, not hard-coded. #2966

Context Option

  • Added new query cache type support, including the SDImageCache API and context option #2968
  • You use .queryCacheType to query image from memory/disk/both cache during image pipeline loading

Fixes

  • Fix the issue for Carthage/SwiftPM framework version symbols, this should match the framework name SDWebImage, or will get a link error when used #2971 #2969
  • Simplify the xattr helper method's code with modern Objective-C syntax #2967. Thanks @huangboju

Changes

  • Change the behavior to return the abstract type for unknown image format, this can solve the accident issue for custom coder who provide a new format #2973
SDWebImage - 5.6.1 - 5.6 Patch

Published by dreampiggy over 4 years ago

Performances

  • Keep the progressive decoding process only exist one per image download. Cancel the unused progressive decoding when full pixel data is available. #2483

Fixes

  • Fix the NotificationCenter does not remove the observer and little private header garden #2959
SDWebImage - 5.6.0 - URLSession Metrics && Vector Format

Published by dreampiggy over 4 years ago

Features

URLSession Metrics

  • Added the URLSessionTaskMetrics support for downloader && operation, which can be used for network metrics #2937
  • Typically you use custom operation class to collect all metrics in your app. You can also collect metrics for single url request level. Check the #2937 example code to grab the download token and check metrics.

Vector Image

  • Feature - better support for vector format detection, now PDF rasterized bitmap is built-in #2936
  • Pass .thumbnailPixelSize to control the PDF bitmap size. If you want vector PDF rendering, you still need to use SDWebImagePDFCoder.
  • Vector image like SVG (via SDWebImageSVGCoder) and PDF (via SDWebImagePDFCoder), or system symbol images, can be detected by new API sd_isVector.
  • Vector image does not pass to transformer by default, because they support dynamic size changing. Pass .transformVectorImage option to allow transformation.

Cache

  • Add a better check to handle the cases when call storeImage without imageData #2953
  • Which means, if you store image to disk without data, we will use extra information via sd_imageFormat or custom image class, to choose the the image format (including GIF and PDF) for encoding. Previously we only encode it into PNG or JPEG.

Context Option

  • Feature add context option for cache, loader and coder, deprecated SDWebImageContextCustomManager #2955
  • This makes it easy to use custom loader, cache, and decoder, without need to create a dummy SDWebImageManager instance.

Fixes

  • Fix the rare case when call SDWebImageDownloaderOperation.cancel, the completion block may callback twice #2954

Warnings

  • Suppress the deprecation warning when min deployment target version set to iOS 13+ or macCatalyst
  • Complete all the SDWebImage error code with the localized description, make it easy for debugging #2948
SDWebImage - 5.5 Patch - AnimatedImage MaxBufferSize Fix

Published by dreampiggy over 4 years ago

Fixes

  • Fix the issue that maxBufferSize property does not correctly works for SDAnimatedImageView #2934
SDWebImage - 5.5 Patch - Progressive Animation Fix

Published by dreampiggy almost 5 years ago

Fixes

  • Fix the SDAnimatedImageView's progressive animation bug, which reset the frame index to 0 each time new frames available #2931
SDWebImage - 5.4.3 - 5.4 Patch

Published by dreampiggy almost 5 years ago

Fixes

  • Fix the SDAnimatedImageView's progressive animation bug, which reset the frame index to 0 each time new frames available #2931
SDWebImage - 5.3.4 - 5.3 Patch

Published by dreampiggy almost 5 years ago

Fixes

  • Fix the SDAnimatedImageView's progressive animation bug, which reset the frame index to 0 each time new frames available #2931
SDWebImage - 5.5.0 - Thumbnail Decoding && Core Image

Published by dreampiggy almost 5 years ago

Features

Thumbnail Decoding

  • Supports to load the large web image with thumbnail, control the limit size and aspect ratio #2922 #2810
  • Better than resize transformer, which does not allocate full pixel RAM and faster on CPU. If you've already use transformer to generate thumbnail, you'd better have a try
  • Works for both animated images and progressive images, each frame using the thumbnail decoding
  • Applies for Vector Format like SVG/PDF as well, see more in Coder Plugin List

Core Image

  • Support all transformer method on CIImage based UIImage/NSImage #2918
  • For CIImage based UIImage/NSImage, using the CIFilter to take shortcut, which is faster and lazy (rasterize on demand)

Cache

  • Support to use the creation date and the change date to determine the disk cache expire date compare #2915

Performances

  • Using UIGraphicsImageRenderer on iOS 10+, save memory when image bitmap is RGB(-25%) or Grayscale(-75%) #2907
  • Provide the polyfill APIs for firmware iOS 10- and macOS. If you already use SDGraphicsBeginImageContext for drawing, you'd better replace that instead.

Fixes

  • Fix Gaussian Blur's bug which take half of the blur radius compared to the standard, should match Core Image's behavior #2927
SDWebImage - 5.4.2 - 5.4 Patch

Published by dreampiggy almost 5 years ago

Fixes

  • SDAnimatedImage now only keep the animated coder when frame count >=1 , else we will behave like UIImage to save RAM usage #2924
SDWebImage - 5.4.1 - 5.4 Patch

Published by dreampiggy almost 5 years ago

Fixes

  • Fix the issue that "There may be no complete callback when download the picture of the local path" #2917
SDWebImage - 4.4.8 - 4.4 patch

Published by dreampiggy almost 5 years ago

Fixes

  • Fix the issue that "There may be no complete callback when download the picture of the local path" #2916
  • Fix the crash when using NSCache delegate with SDMemoryCache default implementation on dealloc #2899
  • Fix the thread safe issue with Downloader and DownloaderOperation during cancel #2903
SDWebImage - 5.4.0 Extended Cache Metadata

Published by dreampiggy almost 5 years ago

Features

Cache

  • Allows advanced user to read/write extended metadata associated with image data from disk cache #2898
  • This metadata will be processed at the same time when store or query the image. The metadata should conforms to NSCoding for archive and unarchive.

Manager

  • Add SDWebImageWaitStoreCache, which wait for all the async disk cache written finished and then callback, useful for advanced user who want to touch the cache right in completion block #2900

Fixes

  • Using one global function to ensure we always sync all the UIImage category associated object status correctly inside our framework #2902
  • Fix the thread safe issue with Downloader and DownloaderOperation during cancel #2903
SDWebImage - 5.3 Patch - Memory Cache Delegate Fix

Published by dreampiggy almost 5 years ago

Fixes

  • Fix the crash when using NSCache delegate with SDMemoryCache default implementation on dealloc #2899