【问题标题】:How to determine if SKTexture uses an @2x or @3x image?如何确定 SKTexture 使用的是@2x 还是@3x 图像?
【发布时间】:2015-07-14 14:05:58
【问题描述】:

有没有办法确定现有的 SKTexture 使用的是@2x 还是@3x 图像版本?

我可以查看纹理的大小并进行比较,但我想知道是否有更优雅的方法来做到这一点,最好不使用 UIImage。

【问题讨论】:

  • PS:相关问题在这里没有答案:stackoverflow.com/questions/29886540/…
  • 您是要从自己的图集或 Xcode 的图像资源中加载图像吗?
  • 在 iOS 9 和 OS X 10.11 上的 SKTexture 上有一个 CGImage 属性。您可能可以根据屏幕密度和每行字节数或类似的东西来确定比例。
  • 只是单个 PNG 图像。没有图集,没有资产目录。
  • “我可以查看纹理的大小并比较它们,但我想知道是否有更优雅的方法”纹理大小仍然以点为单位,不是吗?

标签: sprite-kit textures scale sktexture


【解决方案1】:

这是一个适用于 iOS 9 和 OS X 10.11 的解决方案:

CGImageRef imageRef = texture.CGImage;
CGFloat *scale = CGImageGetWidth(imageRef) / [texture size].width;
CGImageRelease(imageRef); // Not sure if you need this line?

【讨论】:

  • 嗯,总比没有好。这是否真的会创建一个 CGImage 或者 SKTexture 是否已经在内部使用一个 CGImage 是一个很好的问题。
  • 是的,我猜你必须检查引用计数。我没有 OS X 10.11/Xcode 7 来测试这个
  • @LearnCocos2D 我很好奇,你最终找到了一个好的解决方案吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
相关资源
最近更新 更多