SDWebImageJPEGXLCoder 是 SDWebImage 的编码器插件,支持 JPEG-XL 格式。
此编码器支持 HDR/SDR 解码,以及 JPEG-XL 动画图像。
- 此编码器支持通过 UIImageView/NSImageView 进行动画,但不支持 SDAnimatedImageView(因为当前编码器 API 需要支持非顺序帧解码,但 libjxl 不支持。将在 SDWebImage 6.0 中移除此限制)
- 此编码器不支持 JPEG-XL 编码(因为我没有时间 :))
- Apple 的 ImageIO 从 iOS 17/tvOS 17/watchOS 10/macOS 14 开始支持 JPEGXL 解码(通过:WWDC2023),因此这些平台上的 SDWebImage 也可以使用
SDImageIOCoder
解码 JPEGXL 图像(但无动画 JPEG-XL 支持)
- iOS 9.0
- macOS 10.11
- tvOS 9.0
- watchOS 2.0
- visionOS 1.0
SDWebImageJPEGXLCoder 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'SDWebImageJPEGXLCoder'
SDWebImageJPEGXLCoder 通过 Carthage 提供。
github "SDWebImage/SDWebImageJPEGXLCoder"
注意:您必须使用 carthage build --use-xcframeworks
进行集成(因为它支持 5 个 Apple 平台。您可以使用 --platform iOS,visionOS
限制您需要的平台)
SDWebImageJPEGXLCoder 通过 Swift Package Manager 提供。
let package = Package(
dependencies: [
.package(url: "https://github.com/SDWebImage/SDWebImageJPEGXLCoder.git", from: "0.1.0")
]
)
在使用 SDWebImage 加载 JPEGXL 图像之前,您需要将 JPEGXL 编码器注册到您的编码器管理器中。此步骤建议在您的应用启动后执行(例如 AppDelegate 方法)。
- Objective-C
// Add coder
SDImageJPEGXLCoder *JPEGXLCoder = [SDImageJPEGXLCoder sharedCoder];
[[SDImageCodersManager sharedManager] addCoder:JPEGXLCoder];
- Swift
// Add coder
let JPEGXLCoder = SDImageJPEGXLCoder.shared
SDImageCodersManager.shared.addCoder(JPEGXLCoder)
- Objective-C
// JPEG-XL online image loading
NSURL *JPEGXLURL;
UIImageView *imageView;
[imageView sd_setImageWithURL:JPEGXLURL];
- Swift
// JPEG-XL online image loading
let JPEGXLURL: URL
let imageView: UIImageView
imageView.sd_setImage(with: JPEGXLURL)
注意:您还可以在 UIImageView/NSImageView 和 WebImage(通过 SwiftUI 端口)上测试动画 JPEG-XL
要运行示例项目,请克隆仓库,并在根目录中首先运行 pod install
。然后打开 SDWebImageJPEGXLCoder.xcworkspace
。
这是一个演示如何通过 SDWebImageJPEGXLCoderExample
目标使用 JPEG-XL 和动画 JPEG-XL 图像的示例。
这些 JPEG-XL 图像来自 JXL 艺术画廊
SDWebImageJPEGXLCoder 在 MIT 许可证下提供。有关更多信息,请参阅LICENSE 文件。