使用 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)!)
}
我正在使用 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)!)
}