【发布时间】:2020-09-09 03:16:41
【问题描述】:
我在我的应用程序中显示从网络下载的图像,但我想对它们进行下采样,这样它们就不会占用数 MB 的内存。我以前可以用 UIKit 轻松做到这一点:
func resizedImage(image: UIImage, for size: CGSize) -> UIImage? {
let renderer = UIGraphicsImageRenderer(size: size)
return renderer.image { (context) in
image.draw(in: CGRect(origin: .zero, size: size))
}
}
还有其他方法,但它们都依赖于知道图像视图的所需大小,这在 SwiftUI 中并不简单。
是否有专门用于下采样 SwiftUI 图像的良好 API/方法?
【问题讨论】:
-
您想要的视图大小是什么?
-
我不确定,我想我可以使用 GeometryReader?如果这就是您的意思,我想将图像的实际渲染大小缩小到任何尺寸
-
然后你就可以使用和你一样的功能,用
Image(uiImage: ...)创建图像。 -
您可以使用 CIFilter 按比例而不是 cgsize 缩小样本
标签: swift swiftui downsampling