This library provides an async image downloader with cache support. For convenience, we added categories for UI elements like UIImageView, UIButton, MKAnnotationView. > 💡NOTE: SD is the prefix for Simple…








This library provides an async image downloader with cache support. For convenience, we added categories for UI elements like UIImageView, UIButton, MKAnnotationView.
> 💡NOTE: SD is the prefix for Simple Design (which is the team name in Daily Motion company from the author Olivier Poitrey)
Features
- [x] Categories for
UIImageView,UIButton,MKAnnotationViewadding web image and cache management - [x] An asynchronous image downloader
- [x] An asynchronous memory + disk image caching with automatic cache expiration handling
- [x] A background image decompression to avoid frame rate drop
- [x] Progressive image loading (including animated image, like GIF showing in Web browser)
- [x] Thumbnail image decoding to save CPU && Memory for large images
- [x] Extendable image coder to support massive image format, like WebP
- [x] Full-stack solution for animated images which keep a balance between CPU && Memory
- [x] Customizable and composable transformations can be applied to the images right after download
- [x] Customizable and multiple caches system
- [x] Customizable and multiple loaders system to expand the capabilities, like Photos Library
- [x] Image loading indicators
- [x] Image loading transition animation
- [x] A guarantee that the same URL won't be downloaded several times
- [x] A guarantee that bogus URLs won't be retried again and again
- [x] A guarantee that main thread will never be blocked
- [x] Modern Objective-C and better Swift support
- [x] Performances!
For Apple visionOS
From 5.19+, SDWebImage supports visionOS on all Package Managers (include CocoaPods/Carthage/SPM). Upgrade the related tools if you're facing issues.
For 5.18+, SDWebImage can be compiled for visionOS platform. However, it's still in beta and may contains issues unlike the stable iOS UIKit support. Welcome to have a try and report issue.
To build on visionOS, currently we only support the standard Xcode integration.
See Installation with Swift Package Manager and Manual Installation Guide below.
Supported Image Formats
- Image formats supported by Apple system (JPEG, PNG, TIFF, BMP, ...), including GIF/APNG animated image
- HEIC format from iOS 11/macOS 10.13, including animated HEIC from iOS 13/macOS 10.15 via SDWebImageHEICCoder. For lower firmware, use coder plugin SDWebImageHEIFCoder
- WebP format from iOS 14/macOS 11.0 via SDWebImageAWebPCoder. For lower firmware, use coder plugin SDWebImageWebPCoder
- JPEG-XL format from iOS 17/macOS 14.0 built-in. For lower firmware, use coder plugin SDWebImageJPEGXLCoder
- Support extendable coder plugins for new image formats like BPG, AVIF. And vector format like PDF, SVG. See all the list in Image coder plugin List
SDWebImage use Coder Plugin System to support both Apple's built-in and external image format. For static image we always use Apple's built-in as fallback, but not for animated image. Currently (updated to 5.19.x version) we only register traditional animated format like GIF/APNG by default, without the modern format like AWebP/HEICS/AVIF, even on the latest firmware.
If you want these animated image format support, simply register by yourself with one-line code, see more in WebP Coder and HEIC Coder
In future we will change this behavior by always registering all Apple's built-in animated image format, to make it easy for new user to integrate.
Additional modules and Ecosystem
In order to keep SDWebImage focused and limited to the core features, but also allow extensibility and custom behaviors, during the 5.0 refactoring we focused on modularizing the library.
As such, we have moved/built new modules to SDWebImage org.
SwiftUI
SwiftUI is an innovative UI framework written in Swift to build user interfaces across all Apple platforms.We support SwiftUI by building a brand new framework called SDWebImageSwiftUI, which is built on top of SDWebImage core functions (caching, loading and animation).
The new framework introduce two View structs WebImage and AnimatedImage for SwiftUI world, ImageIndicator modifier for any View, ImageManager observable object for data source. Supports iOS 13+/macOS 10.15+/tvOS 13+/watchOS 6+ and Swift 5.1. Have a nice try and provide feedback!
Coders for additional image formats
- SDWebImageWebPCoder - coder for WebP format. iOS 9+/macOS 10.11+. Based on libwebp
- SDWebImageHEIFCoder - coder for HEIF format, iOS 9+/macOS 10.11+ support. Based on libheif
- SDWebImageBPGCoder - coder for BPG format. Based on libbpg
- SDWebImageFLIFCoder - coder for FLIF format. Based on libflif
- SDWebImageAVIFCoder - coder for AVIF (AV1-based) format. Based on libavif
- SDWebImagePDFCoder - coder for PDF vector format. Using built-in frameworks
- SDWebImageSVGCoder - coder for SVG vector format. Using built-in frameworks
- SDWebImageSVGNativeCoder - coder for SVG-Native vector format. Based on svg-native
- SDWebImageLottieCoder - coder for Lottie animation format. Based on rlottie
- SDWebImageJPEGXLCoder - coder for JPEG-XL format. iOS 9+/macOS 10.11+. Based on libjxl
- and more from community!
Custom Caches
- SDWebImageYYPlugin - plugin to support caching images with YYCache
- SDWebImagePINPlugin - plugin to support caching images with PINCache
Custom Loaders
- SDWebImagePhotosPlugin - plugin to support loading images from Photos (using
Photos.framework) - SDWebImageLinkPlugin - plugin to support loading images from rich link url, as well as
LPLinkView(usingLinkPresentation.framework)
Integration with 3rd party libraries
- SDWebImageLottiePlugin - plugin to support Lottie-iOS, vector animation rending with remote JSON files
- SDWebImageSVGKitPlugin - plugin to support SVGKit, SVG rendering using Core Animation, iOS 9+/macOS 10.11+ support
- SDWebImageFLPlugin - plugin to support FLAnimatedImage as the engine for animated GIFs
- SDWebImageYYPlugin - plugin to integrate YYImage & YYCache for image rendering & caching
Community driven popular libraries
- FirebaseUI - Firebase Storage binding for query images, based on SDWebImage loader system
- react-native-fast-image - React Native fast image component, based on SDWebImage Animated Image solution
- flutter_image_compress - Flutter compresses image plugin, based on SDWebImage WebP coder plugin
Make our lives easier
- libwebp-Xcode - A wrapper for libwebp + an Xcode project.
- libheif-Xcode - A wrapper for libheif + an Xcode project.
- libavif-Xcode - A wrapper for libavif + an Xcode project.
- and more third-party C/C++ image codec libraries with CocoaPods/Carthage/SwiftPM support.
Requirements
- iOS 9.0 or later
- tvOS 9.0 or later
- watchOS 2.0 or later
- macOS 10.11 or later (10.15 for Catalyst)
- visionOS 1.0 or later
- Xcode 15.0 or later
Backwards compatibility
- For iOS 8, macOS 10.10 or Xcode < 11, use any 5.x version up to 5.9.5
- For iOS 7, macOS 10.9 or Xcode < 8, use any 4.x version up to 4.4.6
- For macOS 10.8, use any 4.x version up to 4.3.0
- For iOS 5 and 6, use any 3.x version up to 3.7.6
- For iOS < 5.0, please use the last 2.0 version.
Getting Started
- Read this Readme doc
- Read the How to use section
- Read the Latest Documentation and CocoaDocs for old version
- Try the example by downloading the project from Github or even easier using CocoaPods try
pod try SDWebImage - Read the Installation Guide
- Read the SDWebImage 5.0 Migration Guide to get an idea of the changes from 4.x to 5.x
- Read the SDWebImage 4.0 Migration Guide to get an idea of the changes from 3.x to 4.x
- Read the Common Problems to find the solution for common problems
- Go to the Wiki Page for more information such as Advanced Usage
Who Uses It
- Find out who uses SDWebImage and add your app to the list.
Communication
- If you need help, use Stack Overflow. (Tag 'sdwebimage')
- If you'd like to ask a general question, use Stack Overflow.
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you need IRC channel, use Gitter.
Contribution
- If you want to contribute, read the Contributing Guide
- For development contribution guide, read the How-To-Contribute
- For understanding code architecture, read the Code Architecture Analysis
How To Use
- Objective-C
objective-c
#import
...
[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
- Swift
swift
import SDWebImage
imageView.sd_setImage(with: URL(string: "http://www.domain.com/path/to/image.jpg"), placeholderImage: UIImage(named: "placeholder.png"))
- For details about how to use the library and clear examples, see The detailed How to use
Animated Images (GIF) support
In 5.0, we introduced a brand new mechanism for supporting animated images. This includes animated image loading, rendering, decoding, and also supports customizations (for advanced users).
This animated image solution is available for iOS/tvOS/macOS. The SDAnimatedImage is subclass of UIImage/NSImage, and SDAnimatedImageView is subclass of UIImageView/NSImageView, to make them compatible with the common frameworks APIs.
The SDAnimatedImageView supports the familiar image loading category methods, works like drop-in replacement for UIImageView/NSImageView.
Don't have `UIVi
…
Members
-
SDWebImage ★ PINNED
Asynchronous image downloader with cache support as a UIImageView category
Objective-C ★ 26k 4mo agoExplain → -
SDWebImageSwiftUI ★ PINNED
SwiftUI Image loading and Animation framework powered by SDWebImage
Swift ★ 2.6k 5mo agoExplain → -
SDWebImageWebPCoder ★ PINNED
A WebP coder plugin for SDWebImage, use libwebp
Objective-C ★ 276 24d agoExplain → -
SDWebImageSVGCoder
A SVG coder plugin for SDWebImage, using Apple's built-in framework
Objective-C ★ 135 1y agoExplain → -
libwebp-Xcode
A wrapper for libwebp + Xcode project. Support Carthage && CocoaPods && SwiftPM.
Ruby ★ 73 13d agoExplain → -
SDWebImagePhotosPlugin
A SDWebImage plugin to support Photos framework image loading
Objective-C ★ 67 1y agoExplain → -
SDWebImageAVIFCoder
A SDWebImage coder plugin to support AVIF(AV1 Image File Format) image
Objective-C ★ 66 6mo agoExplain → -
SDWebImageLottieCoder
A Lottie animation coder which use SDAnimatedImageView instead of LOTAnimationView for bitmap rendering
Objective-C ★ 54 5y agoExplain → -
SDWebImageHEIFCoder
A SDWebImage coder plugin to support HEIF image without Apple's Image/IO framework
Objective-C ★ 34 5y agoExplain → -
SDWebImagePDFCoder
A PDF coder plugin for SDWebImage, using Apple's built-in framework
Objective-C ★ 27 2y agoExplain → -
SDWebImageYYPlugin
A SDWebImage plugin to integrate YYImage & YYCache for image rendering & caching
Objective-C ★ 26 1y agoExplain → -
SDWebImageFLPlugin ▣
A SDWebImage plugin to support GIF using FLAnimatedImage and category
Objective-C ★ 26 4y agoExplain → -
SDWebImageSVGNativeCoder
SVG-Native (SVG OpenType) image coder plugin for SDWebImage
Objective-C ★ 21 2y agoExplain → -
SDWebImageLottiePlugin
SDWebImage integration with Lottie Animation using remote JSON files
Swift ★ 18 4y agoExplain → -
libavif-Xcode
A wrapper for libavif + Xcode project. Support Carthage && CocoaPods && SwiftPM.
Ruby ★ 18 6mo agoExplain → -
SDWebImageLinkPlugin
A SDWebImage loader plugin, to support load rich link image with LinkPresentation framework
Objective-C ★ 18 6y agoExplain → -
librlottie-Xcode
A wrapper for librlottie + Xcode project. Support Carthage && CocoaPods && SwiftPM.
Objective-C ★ 17 5y agoExplain → -
SDWebImageSVGKitPlugin ▣
A SDWebImage plugin to support SVG with SVGKit and category
Objective-C ★ 16 4y agoExplain → -
libdav1d-Xcode
A wrapper for libdav1d + Xcode project. Support Carthage && CocoaPods.
C ★ 14 3y agoExplain → -
libheif-Xcode
A wrapper for libheif + Xcode project. Support Carthage && CocoaPods && SwiftPM.
Ruby ★ 13 2y agoExplain → -
libde265-Xcode
A wrapper for libde265 + Xcode project. Support Carthage && CocoaPods && SwiftPM.
Ruby ★ 13 2y agoExplain → -
SDWebImageVideoCoder
A toy (non-production) SDWebImage coder plugin to play Video Format like MP4 on Animated Image View
Objective-C ★ 12 2y agoExplain → -
SDWebImageBPGCoder
A BPG coder plugin for SDWebImage, use libbpg
C ★ 11 3y agoExplain → -
SDWebImageJPEGXLCoder
A SDWebImage coder plugin to support JPEG-XL image
Objective-C ★ 10 1y agoExplain → -
SDWebImageAPNGCoder ▣
APNG Coder for SDWebImage
Objective-C ★ 9 6y agoExplain → -
SDWebImageFLIFCoder
A FLIF coder plugin for SDWebImage, use libflif
Objective-C ★ 7 5y agoExplain → -
libjxl-Xcode
A wrapper for libjxl (JPEG-XL) with Xcode project. Support Carthage && CocoaPods && SwiftPM.
Swift ★ 6 1y agoExplain → -
libaom-Xcode
A wrapper for libaom + Xcode project. Support Carthage && CocoaPods && SwiftPM.
C ★ 6 3y agoExplain → -
SDWebImagePINPlugin
A SDWebImage plugin to integrate PINCache for custom image caching
Objective-C ★ 6 5y agoExplain → -
librav1e-Xcode
A wrapper for rav1e (Fast AV1 Encoder) + Xcode project. Using pre-built binary to support CocoaPods.
Ruby ★ 4 2y agoExplain → -
libgav1-Xcode
A wrapper for libgav1 + Xcode project. Support SwiftPM && CocoaPods.
Ruby ★ 3 5y agoExplain → -
sdwebimage.github.io
SDWebImage Documentation
HTML ★ 3 1y agoExplain → -
libbpg-Xcode
A wrapper for libbpg + Xcode project. Support Carthage && CocoaPods.
Ruby ★ 3 7y agoExplain → -
libx265-Xcode
A wrapper for libx265 + Xcode project. Support Carthage && CocoaPods.
Ruby ★ 2 2y agoExplain → -
libvmaf-Xcode
A wrapper for libvmaf + Xcode project. Support Carthage && CocoaPods.
C ★ 2 3y agoExplain → -
libflif-Xcode
A wrapper for libflif + Xcode project. Support Carthage && CocoaPods.
Ruby ★ 2 7y agoExplain → -
SDWebImageProgressiveJPEGDemo
Demo project of using SDWebImage + Concorde for Progressive JPEG support
Swift ★ 2 7y agoExplain → -
svgnative-Xcode
Integrate svg-native-viewer library with Xcode project. Support Carthage && CocoaPods && SwiftPM.
Ruby ★ 1 2y agoExplain → -
svg-native-viewer ⑂ ▣
SVG Native viewer is a library that parses and renders SVG Native documents
C++ ★ 1 2y agoExplain → -
SVT-AV1-Xcode
A wrapper for SVT-AV1 + Xcode project. Support SwiftPM && CocoaPods.
Ruby ★ 1 2y agoExplain → -
jazzy-theme
SDWebImage documentation theme for Jazzy
JavaScript ★ 0 5y agoExplain → -
SDWebImageMapKitPlugin
A SDWebImage plugin to support MapKit integration
Objective-C ★ 0 6y agoExplain →
No repos match these filters.