使用 SDWebImages 时如何知道图像文件大小?

How to know Image file Size when using SDWebImages?

我正在使用 SDWebImages 并使用 imageView.sd_setImage() 设置图像, 现在我想知道我下载的图片有多大。

我想要高度、宽度和它占用的总内存大小。

试试这个:

imageView.sd_setImage(with: URL(string: imgUrl), completed: { (image, error, cache, url) in
                let imageSize = image?.size
                print("imageSize", imageSize)
                var imgData: NSData = NSData(data: image.jpegData(compressionQuality: 1))
                // var imgData: NSData = UIImagePNGRepresentation(image)
                // you can also replace UIImageJPEGRepresentation with UIImagePNGRepresentation.
                var imageSizeBytes: Int = imgData.count
                print("size of image in KB: %f ", Double(imageSizeBytes) / 1000.0)
            })

根据你的问题,我假设你需要在下载之前知道图像 url 的大小或尺寸,你需要在其中实现 3 个自定义 Swift 类您的代码将作为 image fetcher

那么下面是简单的用法

let imageURL: URL = ...
fetcher.sizeFor(atURL: [=10=].url) { (err, result) in
  // error check...
  print("Image size is \(NSStringFromCGSize(result.size))")
}

或者如果你想在下载图片后获取图片大小和尺寸,那么你可以使用下面提到的 SDWebImage 回调块函数

imageView.sd_setImage(with: URL.init(string: self.videoImage)) { (image, err, type, url) in
            print((image?.size.height)! + (image?.size.width)!)
 
}