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



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

我的问题是,栅格化版本的pdf看起来比任何从Adobe Illustrator(或Photoshop使用智能对象)导出的更好。

这是一个链接到Imgur相册的例子。

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

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

我认为这可能是一个分辨率问题:Xcode没有所需的分辨率,所以它放大图像导致故障。

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

这也可能是由于Illustrator的设置。

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

  • 第一个是由Illustrator
  • 生成的图集纹理
  • 从XCode的PDF功能中创建的图片中获得纹理

请注意,对于这个测试,您甚至不需要atlas,因为atlas是用于渲染优化的。

最新更新