SDWebImage/SDWebImage
 Watch   
 Star   
 Fork   
15 hours ago
SDWebImage

5.21.3 - 5.21 Patch

See all tickets marked for the 5.21.3 release

Fixes

  • Switched image encoding to a context-aware approach with a safe fallback, allowing per-request encoder selection without changing the public API. #3844 @CloudlessMoon
2025-08-29 15:57:40
SDWebImage

5.21.2 - 5.21 Patch

See all tickets marked for the 5.21.2 release

Fixes

  • Do not ignore blendMode in SDImageTintTransformer #3831 @bdaz
  • Fix the retryFailed option does not get modified by optionsProcessor #3829 @AirBlack
  • Avoid self if be nil in block. #3826 @hawk0620
2025-06-10 17:29:42
SDWebImage

5.21.1 - Xcode 26 Compatible

See all tickets marked for the 5.21.1 release

Projects

  • [Xcode 26] - Fix watchOS build error with UITraitCollection in the new SDK #3819

Performance

  • Reduce memory peak when playing the GIF on SDAnimatedImageView #3813
2025-02-24 17:15:48
SDWebImage

5.21.0 - HDR Support

See all tickets marked for the 5.21.0 release

Features

HDR Decoding

  • Supports HDR decoding on Apple ImageIO coder (avif/heic/jpeg-xl, etc) #3778
    • Note: Defaults to always use SDR, if you want HDR decoding, pass SDWebImageContextDecodeToHDR: @(YES) to context option. Pay attention even decoded CGImage is HDR ready, full rendering require display hardware support and per-image-view level control, it's recommended to read WWDC23 and use proper API to check for current display headroom to turn on HDR.
    • Note: Apple ImageIO coder requires macOS 14/iOS 17+ for HDR decoding. For lower firmware you can consider AVIF/HEIF/JPEG-XL third-party codec

HDR Encoding

  • Supports HDR encoding on Apple ImageIO coder #3799
    • Note: Defaults to always use SDR, if you want HDR dencoding, pass SDImageCoderEncodeToHDR: @(SDImageHDRTypeISOHDR) for ISO HDR encoding. And SDImageHDRTypeISOGainMap for ISO Gain Map based HDR encoding (like JPEG for compatibility)
    • Note: Apple ImageIO coder requires macOS 15/iOS 18+ for HDR encoding. For lower firmware you can consider AVIF/HEIF/JPEG-XL third-party codec

Transformer

  • Allows user to directly customize preserveImageMetadata for our built-in transformers #3796

UI Category

  • Change the default callback queue policy to SafeAsyncMainThread, don't need main queue check at all #3797
    • Note: This should make sd_setImageWithURL related UI API to work on case like UICollectionViewDiffableDataSource , which is running on main thread but not main queue.

Fixes

  • fix: sd_colorAtPoint/sd_colorsWithRect should early return when pixel format is not supported #3798
    • Note: In history this may return a wrong color for RGB10/RGB16 pixel format. Now it just return nil, which may supported in the future.
2025-02-20 21:55:37
SDWebImage

5.20.1 - 5.20 Patch

See all tickets marked for the 5.20.1 release

Fixes

  • (macOS) Fix SDAnimatedImagePlayer leaking SDDisplayLink instances and leaving CVDisplayLink threads running #3776 #3779
  • Fix the issue that previous optimization for special case (multiple same URL in prefetcher list) breaks the queryCacheType option sematic #3788
2024-11-01 19:15:34
SDWebImage

5.20.0 - Animation Transformer with tint color

See all tickets marked for the 5.20.0 release

Features

Animation Transformer

  • SDAniamtedImageView now supports to apply transformer (post-processing of frame), with the SDAnimatedImage. #3761
  • You can apply transform like blurs, tint, CIFilters on animation frames.
    • Detailed behavior: Transform is applied just after the frame been decoded, on the global decode queue.
    • Detailed behavior: The transformed image replace the original decoded one, and re-use the design of maxBufferSize on SDAnimatedImageView

Disk Cache

  • Supports LRU eviction on disk cache, change the default expire type to accessDate instead of modificationDate #3759
    • In previous versions, the disk cache does not actually supports LRU (The NSFileManager read API does not update the accessDate), this version fix this issue and change the default behavior to use accessDate

Tint Color

  • Add blend mode to UIImage+Transform tint color API, default blend mode changed to sourceIn #3749
    • In previous versions, the blend mode use sourceAtop and does not match UIKit's tintColor naming. We now use sourceIn to match it.
    • Due to this changes, the SDWebImageTintTransformer defaults to use sourceIn blend mode as well. You can use transformer to tint SDAnimatedImageView as well

Fixes

  • Fix sd_imageFormat sometimes returns undefined on static image #3760
2024-08-22 18:33:11
SDWebImage

5.19.7 - 5.19 Patch

See all tickets marked for the 5.19.7 release

Fixes

  • Fix the thumbnail decoding on JPEG which contains EXIF orientation, use the new way to workaround JFIF bug #3743
  • Fix the crash when some special urls cause the cache path return nil and crash #3740
  • Fix the issue that some URL which has percent-encoding with \0 will cause nil cache path #3744
2024-08-07 15:52:07
SDWebImage

5.19.6 - Thumbnail performance

See all tickets marked for the 5.19.5 release

Performance

  • Use the better way to detect lazy/non-lazy CGImage. Only do force decoding for lazy image (avoid thumbnail image been decoded twice) #3736

Fixes

  • Remove the unused code for iOS 10 polyfill #3735
2024-07-24 17:33:33
SDWebImage

5.19.5 - Swift 6 Compatible

See all tickets marked for the 5.19.5 release

Fixes

  • Fix our HEIC coder to encode timed image sequences instead of non-timed image gallery for HEIC encoding #3727
    • If you have use case to encode static multi-frame HEIC image, use ImageIO directly. SDWebImage currenly always assume multi-frame image to be animated.

Project

  • Use the new macro from Swift compiler and SDK to mark the UIImage/UIImageView subclass matching what they designed to be #3731
    • This solve the Xcode 16 Beta issue when trun on Swift 6 mode with strict concurrency.

Tests

  • Try to re-enable the HEIC encoding test and visionOS xctest #3728
2024-07-01 19:03:57
SDWebImage

5.19.4 - 5.19 Patch

See all tickets marked for the 5.19.4 release

Fixes

  • Fix the issue that SDAnimatedImage breaks the vector on macOS #3724