调整大小时 IOS Swift SVG 图像质量问题

Bet*_*ksu 2 svg image resize-image swift swiftui

调整大小

原来的

正如您在图像中看到的,当我将 SVG 图像大小调整为 200X200 时,它们的质量会下降。这不是违反 SVG 图像逻辑吗?我认为无论我将 SVG 图像放大多大,它都不会被损坏。我能为它做些什么呢?我可以遵循哪种方法?

我在 SwiftUI 中调整了 SVG 图像的大小

  Image(uiImage: .flame.resize(targetSize: CGSize(width: 200, height: 200)))
Run Code Online (Sandbox Code Playgroud)

我使用这段代码来调整图像大小。这不起作用。您可以在上面调整大小的图像中看到。我在这里找到了这个解决方案。 点击

extension UIImage {
    func resize(targetSize: CGSize) -> UIImage {
        return UIGraphicsImageRenderer(size:targetSize).image { _ in
            self.draw(in: CGRect(origin: .zero, size: targetSize))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

mat*_*att 7

我对 SwiftUI 不太了解,但这里有一个在 UIKit 图像视图中以多种尺寸准确显示单个 SVG 的示例:

在此输入图像描述

这是在没有代码的情况下完成的。我所做的就是在资产目录中将 SVG 配置为单一大小并保留矢量数据:

在此输入图像描述

这与你正在做的完全不同;您正在将 SVG绘制到图形上下文中,因此您将丢弃矢量数据并代之以位图,这当然不能完美缩放。