【问题标题】:Why does XCode scale Vector images better than Illustrator or Photoshop?为什么 XCode 比 Illustrator 或 Photoshop 更好地缩放矢量图像?
【发布时间】:2015-10-25 21:25:51
【问题描述】:

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

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

这是一个指向Imgur album 的链接,其中包含示例。

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

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

【问题讨论】:

  • 您的链接不会转到相册,只会转到 Google
  • 谢谢罗恩。我修复了链接。
  • @user2280092:也许这是由于 Photoshop/Illustrator 设置造成的?
  • 对于这种工作,我从矢量图像动态创建了图集。我使用 PaintCode 创建渲染 PNG 图像的方法,然后将这些图像添加到图集。
  • @Domsware 我也是这么想的。但是,我尝试更改所有我能想到的设置,但没有奏效。至于 PaintCode,它是提高性能还是和使用普通的 PNG 图集差不多?

标签: xcode pdf sprite-kit asset-catalog sktexture


【解决方案1】:

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

在创建SKSpriteNode 时未指明大小,则使用纹理的大小。因此,如果您 SKSpriteNode 的尺寸为 30x30 points,则您必须为 @2x 带来 60x60 pixels 图像和 90x90 pixels 图像为@3x。

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

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

  • 其中第一个具有来自 Illustrator 生成的图集的纹理
  • 第二个是从 XCode 的 PDF 功能创建的资产的图像中获得纹理

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

【讨论】:

  • 抱歉,我没有尽快回复您,但我确实对其进行了测试,现在它正在工作。感谢您的宝贵时间。
猜你喜欢
  • 2020-01-03
  • 2015-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 2012-11-06
  • 2011-07-04
  • 2011-07-11
相关资源
最近更新 更多