SDWebImageJPEGXLCoder 0.1.0

SDWebImageJPEGXLCoder 0.1.0

DreamPiggy维护。



 
依赖
SDWebImage~> 5.17
libjxl~> 0.10
 

  • dreampiggy

SDWebImageJPEGXLCoder

Version License Platform SwiftPM compatible Carthage compatible

SDWebImageJPEGXLCoder 是 SDWebImage 的编码器插件,支持 JPEG-XL 格式。

参阅:为什么选择 JPEG-XL

此编码器支持 HDR/SDR 解码,以及 JPEG-XL 动画图像。

注意

  1. 此编码器支持通过 UIImageView/NSImageView 进行动画,但不支持 SDAnimatedImageView(因为当前编码器 API 需要支持非顺序帧解码,但 libjxl 不支持。将在 SDWebImage 6.0 中移除此限制)
  2. 此编码器不支持 JPEG-XL 编码(因为我没有时间 :))
  3. 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

安装

CocoaPods

SDWebImageJPEGXLCoder 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod 'SDWebImageJPEGXLCoder'

Carthage

SDWebImageJPEGXLCoder 通过 Carthage 提供。

github "SDWebImage/SDWebImageJPEGXLCoder"

注意:您必须使用 carthage build --use-xcframeworks 进行集成(因为它支持 5 个 Apple 平台。您可以使用 --platform iOS,visionOS 限制您需要的平台)

Swift Package Manager

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 艺术画廊

作者

DreamPiggy

许可证

SDWebImageJPEGXLCoder 在 MIT 许可证下提供。有关更多信息,请参阅LICENSE 文件

感谢