为什么 XCode 比 Illustrator 或 Photoshop 更好地缩放矢量图像?

Why does XCode scale Vector images better than Illustrator or Photoshop?

我尝试使用 XCode 的新 PDF 功能,该功能基本上将图像缩放为 1x、2x 和 3x。不幸的是我也在使用 Spritekit,所以我宁愿使用 SKTextureAtlases 而不是 Asset Catalog。

我的问题是 pdf 的光栅化版本看起来比从 Adob​​e Illustrator(或使用智能对象的 Photoshop)导出的任何文件都要好。

这是 link 到 Imgur album 的示例。

具体来说,从 Illustrator 导出的图像有 2 种正方形尺寸:60px 和 90px。 Xcode 中的图像都具有相同的名称,但在两个不同的图集中:atlas@2x.atlas 和 atlas@3x.atlas。 PDF 从 Illustrator 以 30 像素正方形导出,然后 Xcode 将其缩放为 2x 和 3x 版本。

那么为什么 Xcode 版本看起来更锐利(尤其是在圆角和平面之间的交界处)?

我认为这可能是分辨率问题:Xcode 没有所需的分辨率,因此放大图像导致出现故障。

当创建 SKSpriteNode 时没有指示大小,将使用纹理的大小。因此,如果您 SKSpriteNode 的尺寸为 30x30 ,则必须为 @2x 和 90x90 像素 @3x 的图像。

这也可能是 Illustrator 中的设置所致。

要在屏幕上进行真正的比较,您可以显示两个 SKSpriteNode 大小相同的 30x30 :

  • 它们中的第一个具有来自 Illustrator 生成的图集的纹理
  • seconde 的纹理来自 XCode
  • 的 PDF 功能创建的资产中的图像

请注意,对于此测试,您甚至不需要图集,因为图集用于渲染优化。