The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
5.18.1 - Privacy Manifest
1 week ago
See [all tickets marked for the 5.18.1 release](https://github.com/SDWebImage/SDWebImage/milestone/120)
### Project
- Added the visionOS support for "Build XCFramework" script target #3598
- Added xcprivacy to framework target and SPM #3600
### Fixes
- Fix the JFIF image orientation bug (which does not use EXIF but JFIF metadata) #3597
### Warnings
- Fix one warning because local variable shadows the variable outside of block #3599
5.18.0 - VisionOS and more
2 weeks ago
See [all tickets marked for the 5.18.0 release](https://github.com/SDWebImage/SDWebImage/milestone/119)
### VisionOS
- Support to build for visionOS (no package manager support) #3556
- - Note this does not include CocoaPods/SwiftPM support. You need Xcode 15+ Beta to open SDWebImage project and build by yourself
### Features
#### UI Category
- Added SDWebImageAvoidAutoCancelImage to avoid cancel loading image requests for the same operation key #3592 @mTz0206
- Add better support for stateful view (UIButton) for image URL/progres s state management #3576
#### Downloader
- Fix redundant requests for the same url during decoding time #3572 @Mervin1024
#### Decoder
- Expose the data and format when SDAnimatedImageRep created with APNG/GIF/WebP/HEICS #3573
- Fix the CGImageCreateScaled to support 16/32 bit depth CGImage (RGB161616) and always preserve pixel format info #3575
### Fixes
- Add extra check for empty data during URLSession data callback #3587
5.17.0 - Reduce RAM with Force Decode
9 weeks ago
See [all tickets marked for the 5.17.0 release](https://github.com/SDWebImage/SDWebImage/milestone/118)
### Performance
- Refactory the logic to handle force decode logic to avoid CA copy frame buffer, introduce SDImageForceDecodePolicy detailed control #3559 #3417
- - This fix the issue that non-ImageIO coder (means, WebPCoder) will cause CA to copy bitmap buffers and increase memory usage.
- - You can still custom the behavior using the new `SDImageForceDecodePolicy`, defaults to automatic.
- For coder plugin who want to opt-in to avoid `CA::copy_image`, use the new `preferredPixelFormat:` and do byte alignment and colorspace convert.
### Fixes
- Fix macOS bug that SDImageCoderDecodeScaleDownLimitBytes still use the AnimatedImageRep and beyond the byte limit #3561
- Change macOS `sd_colorAtPoint/sd_colorsWithRect` which may loss colorspace information. Now it correctly convert to sRGB colorspace always.
- Fix the CGImageCreateScaled to support 16/32 bit depth CGImage (RGB161616) and always preserve pixel format info #3575
5.16.0 - Limit Bytes && Frame Pool
15 weeks ago
See [all tickets marked for the 5.16.0 release](https://github.com/SDWebImage/SDWebImage/milestone/116)
### Features
#### Animated Image
- Performance: Introduce frame pool for SDAnimatedImage playback. Solve when multiple image view references the same URL image cause un-wanted decode which waste RAM/CPU #3524
- - Note this currently does not expose the frame pool API. Fire issue if you're facing issues about this change.
#### Decoder
- Introduce the automatically calculation of thumbnail (include animated/static image) using SDImageCoderDecodeScaleDownLimitBytes #3537
- - This calculation of the UIKit-based animated image frame count as well (only `UIAnimatedImage`, not `SDAnimatedImage`, because `SDAnimatedImage` manage frames dynamically). Fire issue if you're facing issues about this change.
- - The `.scaleDownLargeImages` implementation has switched to use this instead of `.thumbnailPixelSize` (5.5.0 - 5.16.0)
- - Note this introduce new API and need Coder Plugin update (like WebP/AVIF)
### Documentations
- Update some comments to allows SwiftDocC generate better page #3547
5.15.8 - Fix macOS Crash
18 weeks ago
See [all tickets marked for the 5.15.8 release](https://github.com/SDWebImage/SDWebImage/milestone/117)
### Fixes
- Try to fix macOS SDDisplayLink crash because of accessing the deallocated objc pointer during CVDisplayLinkRef callback #3531
### Changes
- Update the implementation SDScaledImageForScaleFactor to support SDAnimatedImage #3535
5.15.7 - Fix Crash
19 weeks ago
See [all tickets marked for the 5.15.7 release](https://github.com/SDWebImage/SDWebImage/milestone/115)
### Fixes
- Try to solve the strange dispatch group crash in SDSafeExecute by removing inline #3526
### Performance
- Opt when multiple same URLs queried in parallel, which may cause duplicated decode and store disk operation #3523
5.15.6 - Fix watchOS
21 weeks ago
See [all tickets marked for the 5.15.6 release](https://github.com/SDWebImage/SDWebImage/milestone/114)
### Performance
- Small improvements to SDDiskCache write perf #3517
- - Note this slightly change the behavior when you manual grab the `SDImageCache.diskCachePath` and remove it without creating new directory, next disk cache write operation will fail, before the restart of App.
### Fixes
- Revert the SDDisplayLink for watchOS, fix the animated image duration bug #3520 #3511
### Warnings
- Fix the warning of C function with no param #3519
5.15.5 - Fix
28 weeks ago
See [all tickets marked for the 5.15.5 release](https://github.com/SDWebImage/SDWebImage/milestone/113)
### Fixes
- Protect the disk operation when input key is nil and cause exception #3505 #3504
- Fix the blur effect logic by avoid color convert and always use three box-blur methodology #3506
5.15.4 - Hotfix
30 weeks ago
See [all tickets marked for the 5.15.4 release](https://github.com/SDWebImage/SDWebImage/milestone/112)
### Fixes
- Fix the crash because of wrong usage of NS_NOESCAPE for SDCallbackQueue async block, should matching DispatchQueue #3500
- - This crash only occurs in specified version of clang compiler. But still recommended to update
5.15.3 - Promotion Fix
30 weeks ago
See [all tickets marked for the 5.15.3 release](https://github.com/SDWebImage/SDWebImage/milestone/111)
### Fixes
- Fix the issue when multiple request for same url failed, the completedBlock will callback more times #3497 #3493
- Try to fix the SDAnimatedImageView playback speed issue in Promotion devices (iPhone Pro) #3496 #3491