ImageFetcher

ImageFetcher 是一个轻量级的图片加载库。它通过在后台解压图片,并提供配置选项来对图片进行圆角处理,从而优化了滚动视图的性能。

📱 要求

Swift 5.5 工具链,并使用 Swift Package Manager,iOS 13

🖥 安装

📦 Swift Package Manager (推荐)

ImageFetcher 添加到您的 Packages.swift 文件中

.package(url: "https://github.com/Mobelux/ImageFetcher.git", from: "2.0.0"),

然后,将该产品添加到任何需要访问该库的目标中

.product(name: "ImageFetcher", package: "ImageFetcher")

⚙️ 用法

使用 Cache 初始化 ImageFetcher

let fetcher = ImageFetcher(try DiskCache(storageType: .temporary(nil)))

可以选择使用会话配置和最大并发图像处理操作计数进行初始化

let sessionConfiguration = URLSessionConfiguration.default
sessionConfiguration.timeoutIntervalForResource = 20
let fetcher = ImageFetcher(try DiskCache(storageType: .temporary(nil)),
                           sessionConfiguration: sessionConfiguration,
                           maxConcurrent: 5)

从 Web 获取图片

let config = ImageConfiguration(url: URL(string: "https://via.placeholder.com/150")!)
let image = try await fetcher.load(config).value

使用配置选项和强大的处理功能获取图片

let config = ImageConfiguration(url: URL(string: "https://via.placeholder.com/150")!,
                                size: CGSize(width: 100.0, height: 100.0),
                                constrain: true,
                                cornerRadius: 10.0,
                                scale: 1)
do {
    let imageSource = try await fetcher.load(config)
    switch imageSource {
    case .cached(let image):
        /// handle image coming from cache
    case .downloaded(let image):
        /// handle newly downloaded image
    }
} catch {
    /// handle error
}

许可证

ImageFetcher 在 MIT 许可下发布。