将SKSpriteNode强制转换为UIImage

时间:2017-02-11 12:24:50

标签: swift uiimage skspritenode

我想将SKSpriteNode转换为UIImage。

let testImage = SKSpriteNode(imageNamed: "PlainProject") as! UIImage

但我在上面的帖子上遇到了崩溃。还有另一种方法吗?

2 个答案:

答案 0 :(得分:2)

你不能直接这样做。

首先,您需要从texture获取SKSpriteNode

之后,您可以使用textureOfNode!.cgImage()获取图片,如下例所示:

let testNode = SKSpriteNode(imageNamed: "Spaceship")
let textureOfNode = testNode.texture
let imageFromTexture = UIImage.init(cgImage: textureOfNode!.cgImage())
print(imageFromTexture) //<UIImage: 0x61000008afa0>, {394, 347}

答案 1 :(得分:2)

您应首先获得精灵cgImage的{​​{1}},然后将其投放到texture

UIImage

或更好的版本,没有强制解开可能let testImage = SKSpriteNode(imageNamed: "someImage.png") let image = UIImage(cgImage: (testImage.texture?.cgImage())!) 的{​​{1}}:

cgImage

结果(在操场上):

enter image description here

这正是我的形象。希望这有帮助!