我尝试使用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是用于渲染优化的。