使用 sd webimage 库获取实际图像

Get actual image using sd webimage library

我有一个集合视图有一个使用 sd webimage 设置的图像视图。此图像是缩略图。我想将实际图像传递给另一个视图控制器。我有实际图像的 URL。如何获取实际图像以便将此 UIImage 传递给下一个视图控制器。 请帮助我。使用的语言是 swift

我建议在 CollectionViewCell 中使用 SDWebImage 框架中的以下方法

sd_setImage(with url: URL!, placeholderImage placeholder: UIImage!)

然后将 URL 传递给下一个视图控制器而不是实际图像,并在下一个视图控制器中重用相同的功能。

正如文档中明确指出的那样,"The download is asynchronous and cached."。这意味着,即使您在下一个视图控制器中调用此函数,它也不会重新下载图像,而是会从缓存中获取。

============================================= ========

或者,如果您想要 UIImage 对象,然后再推送到下一个视图控制器。当您想移动到下一个视图控制器并使用完成块获取图像并将其传递给下一个视图控制器时,请使用以下方法。

sd_setImage(with url: URL!, completed completedBlock: SDWebImage.SDWebImageCompletionBlock!)

============================================= ========

你也可以使用 SDWebImageManager 来下载图像而不需要 UIImageView 的帮助,

确保先导入 SDWebImage,

import SDWebImage

然后写一个私有方法来处理图片下载,

fileprivate func downloadImage(with url:URL) {
    SDWebImageManager.shared().downloadImage(with: url, options: SDWebImageOptions(rawValue: 0), progress: nil) { (image, _, _, _, _) in
        if let _ = image {
            // Use the image object
        } else {
            // Try to download again (optional)
            self.downloadImage(with: url)
        }
    }
}

最后,使用下面的代码调用这个方法,

if let actualURL = URL(string: "Your Image's Actual URL") {
    self.downloadImage(with: actualURL)
}