为什么要在SwiftUI中调整PDF的大小以获取锋利的边缘?

问题描述 投票:0回答:1

我尝试使用Xcode 11.4和iOS 13.4在启用SwiftUI的应用程序中包含pdf。但是,当我调整pdf大小时,它会出现卷曲边缘。我提供了两个版本的pdf:一个大pdf(icon.pdf)和一个小pdf(icon_small.pdf)。当我调整icon.pdf的大小时,它会获得开始边缘,而icon_small.pdf会得到平滑的边缘。该问题也适用于我尝试过的所有其他PDF。

enter image description here

这是我的代码:

struct ContentView: View {
    var body: some View {
        VStack {
            Spacer()
            Text("icon.pdf:")
            Image("icon")
                .resizable()
                .renderingMode(.template)
                .aspectRatio(contentMode: .fit)
                .frame(width: 27.0, height: 27.0)
            Spacer()
            Text("icon_small.pdf:")
            Image("icon_small")
            Spacer()
        }
    }
}

icon.pdficon_small.pdf都具有以下资产设置:

  • 渲染为:模板图像
  • 调整大小:保留矢量数据
  • 设备:通用
  • 秤:单秤

PDF可以在这里找到:

pdf swiftui image-resizing vector-graphics
1个回答
0
投票

[两个PDF文件之间基本上没有区别,除了在一种情况下,内容的坐标按〜14.2的比例缩放]。

我想差别不在于PDF文件,而是在渲染引擎中您用来绘制内容。请注意,PDF文件使用透明度(其alpha常数为0.4),因此混合计算可能会导致边缘结果略有不同。

查看Adobe Acrobat中的两个文件,它们在屏幕上缩放为相同大小,它们之间没有可见的差异。

放大到您的PNG文件中,我看到icon_small.pdf具有抗锯齿的边缘,而icon.pdf没有。您没有说要使用什么将PDF文件渲染为PNG,但我认为您将不得不与使用任何工具的作者进行讨论。

© www.soinside.com 2019 - 2024. All rights reserved.