Skip to content

Releases: SDWebImage/SDWebImage

5.21.0 - HDR Support

24 Feb 09:16
Compare
Choose a tag to compare

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.

5.20.1 - 5.20 Patch

20 Feb 13:57
Compare
Choose a tag to compare

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

5.20.0 - Animation Transformer with tint color

01 Nov 11:16
Compare
Choose a tag to compare

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

5.19.7 - 5.19 Patch

22 Aug 10:45
Compare
Choose a tag to compare

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

5.19.6 - Thumbnail performance

07 Aug 08:00
Compare
Choose a tag to compare

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

5.19.5 - Swift 6 Compatible

24 Jul 09:43
Compare
Choose a tag to compare

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

5.19.4 - 5.19 Patch

01 Jul 11:16
Compare
Choose a tag to compare

See all tickets marked for the 5.19.4 release

Fixes

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

5.19.3 - 5.19 Patch

30 May 06:56
Compare
Choose a tag to compare

See all tickets marked for the 5.19.3 release

Fixes

  • Fix the detection of SVGImageRep on macOS AppKit #3716

5.19.2 - Canonical Binary XCFramework

08 May 09:46
Compare
Choose a tag to compare

See all tickets marked for the 5.19.2 release

Fixes

  • [Important] Fix some performance regression when SDAnimatedImage created with static format like JPEG #3708
  • Fix that colorSpaceGetDeviceRGB cache the color space even when active display changed #3712

Project

5.19.1 - 5.9 Patch

26 Mar 09:24
Compare
Choose a tag to compare

See all tickets marked for the 5.19.1 release

Features

  • Allows the transformer to preserve the UIImage metadata like image format #3688
  • Add a protect when NSString passed into sd_setImageWithURL API (which should be NSURL instance) #3686 @aasdsjk

Performance

  • Replace NSFileManager.enumeratorAtPath with enumeratorAtURL for performance and RAM saving #3690 @ChengzhiHuang

Warnings

  • mark SDWebImageCacheKeyFilter default initializer unavailable & add missing default case of SDCallbackQueue sync/async function #3683 @adamwangxx