Releases: SDWebImage/SDWebImage
Releases · SDWebImage/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: Defaults to always use SDR, if you want HDR decoding, pass
-
- 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. AndSDImageHDRTypeISOGainMap
for ISO Gain Map based HDR encoding (like JPEG for compatibility)
- Note: Defaults to always use SDR, if you want HDR dencoding, pass
-
- 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 likeUICollectionViewDiffableDataSource
, which is running on main thread but not main queue.
- Note: This should make
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
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
- Detailed behavior: The transformed image replace the original decoded one, and re-use the design of
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 useaccessDate
- In previous versions, the disk cache does not actually supports LRU (The NSFileManager read API does not update the
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'stintColor
naming. We now usesourceIn
to match it.
- In previous versions, the blend mode use
-
- Due to this changes, the
SDWebImageTintTransformer
defaults to usesourceIn
blend mode as well. You can use transformer to tint SDAnimatedImageView as well
- Due to this changes, the
Fixes
- Fix sd_imageFormat sometimes returns undefined on static image #3760
5.19.7 - 5.19 Patch
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
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
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
5.19.3 - 5.19 Patch
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
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
- Added GitHub action to release XCFramework which is self-signed #3711 #3709
-
- This is the canonical release of binary framework. Import certifacate and verify the public key when you download the binary framework from unknown sources to avoid supply chain attack.
-
- For Carthage user who build its own SDWebImage binary framwork, you must sign yourself.
- Fix CocoaPods resource bundle when using only
SDWebImage/Core
5.19.1 - 5.9 Patch
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