1. 产品
  2.   图片
  3.   Swift
  4.   Nuke

Nuke

 
 

用于图像编辑和处理的开源 Swift 库

免费的 Swift API,允许自定义图像管道、调整图像大小、使用自定义处理器、圆角图像、下载和现金图像等。

Nuke是一个非常有用的开放源码Swift框架、使软件开发者能够轻松地在自己的Swift应用程序中加载和显示图像。 它只需要一行代码来下载和显示您的应用程序中的图像。 图书馆还包括支持一些先进的特性、例如图像显示和渐进解码、可以显著提高应用程序的性能和用户的经验。

Nuke API 非常易于使用,并且具有非常先进的架构,使软件开发人员能够为图像处理和定制考虑几乎无限的可能性。它包括对基本图像格式的内置支持,例如 JPEG、PNG、HEIF 等。它还支持使用 Swift 代码进行图像编码和解码。

图书馆特色丰富、其中包括几个重要特征、用载荷图像、定制图像管道、居住图像、使用俄罗斯模糊处理器

Previous Next

开始使用 Nuke 

安装 Nuke 的推荐方法是使用 CocoaPods。请将以下几行添加到您的 Podfile

通过 CocoaPods 安装 Nuke。

pod "Nuke"
pod "Nuke-Alamofire-Plugin" # optional
pod "Nuke-AnimatedImage-Plugin" # optional

使用以下命令克隆最新的源。

通过 GitHub 安装 Nuke。

$ git https://github.com/kean/Nuke.git 

使用 Swift 下载和使用图片

开源 Nuke API 为在 Swift 应用程序中下载和使用图像提供了一种组织良好且有效的方式。要获取图像,您需要传递所需图像的 URL,然后调用 resume 方法。它将在后台下载请求的图像,并在完成后通知响应关闭。

不同方式的视图在快速应用中

// Load images directly using Async/Await
func loadImage() async throws {
    let response = try await pipeline.image(for: url, delegate: self)
}
// Use UI components provided by NukeUI mode
struct ContainerView: View {
    var body: some View {
        LazyImage(url: URL(string: "https://example.com/image.jpeg"))
    }
} 

使用斯威夫特的图像API

预览是一个非常有用的特性、使用户能够提前下载图像或其他数据、以期预测其使用。 应用程序可以下载它并存储在应用程序的网络缓存中。 稍后当您需要查看图像时、您的请求回应将从缓存而不是网络返回。 开放源码API Nuke包括支持一个令人兴奋的功能、称为使用Swift代码预发图像。 请记住Prefetit可以接收用户的数据、并给CPU和内存增加压力。 为了减少这个压力、您只能选择磁盘缓存作为预发目的地。

使用斯威夫特GitHub区

inal class PrefetchingDemoViewController: UICollectionViewController {
    private let prefetcher = ImagePrefetcher()
    private var photos: [URL] = []
    override func viewDidLoad() {
        super.viewDidLoad()
        collectionView?.isPrefetchingEnabled = true
        collectionView?.prefetchDataSource = self
    }
}
extension PrefetchingDemoViewController: UICollectionViewDataSourcePrefetching {
    func collectionView(_ collectionView: UICollectionView, prefetchItemsAt indexPaths: [IndexPath]) {
        let urls = indexPaths.map { photos[$0.row] }
        prefetcher.startPrefetching(with: urls)
    }
    func collectionView(_ collectionView: UICollectionView, cancelPrefetchingForItemsAt indexPaths: [IndexPath]) {
        let urls = indexPaths.map { photos[$0.row] }
        prefetcher.stopPrefetching(with: urls)
    }
} 

通过 Swift 加载和兑现图片

图像缓存是一种非常有用的方法,可以提高应用程序性能和最终用户体验。开源 Nuke API 使软件应用程序能够自动缓存下载的图像。 Nuke 依赖于两个内置的缓存层。第一个用于存储处理后的图像,准备显示。它使用 LRU 算法——在扫描期间首先删除最近最少使用的条目。第二个nd 使用HTTP Disk Cache 来存储未处理的图像数据。也可以检查缓存中是否存在请求的图像。

Read/Write通过Swift记忆或磁盘缓存的图像API

let cache = pipeline.cache
let request = ImageRequest(url: URL(string: "https://example.com/image.jpeg")!)
cache.cachedImage(for: request) // From any cache layer
cache.cachedImage(for: request, caches: [.memory]) // Only memory
cache.cachedImage(for: request, caches: [.disk]) // Only disk (decodes data)
let data = cache.cachedData(for: request)
cache.containsData(for: request) // Fast contains check 
// Stores image in the memory cache and stores an encoded
// image in the disk cache
cache.storeCachedImage(ImageContainer(image: image), for: request)
cache.removeCachedImage(for: request)
cache.removeAll() 
 中国人