我想將SKSpriteNode轉換爲UIImage。將SKSpriteNode轉換爲UIImage
let testImage = SKSpriteNode(imageNamed: "PlainProject") as! UIImage
但我在上面的線程崩潰。有沒有另一種方法來做到這一點?
我想將SKSpriteNode轉換爲UIImage。將SKSpriteNode轉換爲UIImage
let testImage = SKSpriteNode(imageNamed: "PlainProject") as! UIImage
但我在上面的線程崩潰。有沒有另一種方法來做到這一點?
你應該得到的精靈第一的texture
的cgImage
,然後將其轉換爲UIImage
:
let testImage = SKSpriteNode(imageNamed: "someImage.png")
let image = UIImage(cgImage: (testImage.texture?.cgImage())!)
或更好的版本不強制解開cgImage
可能是nil
:
let image = UIImage()
if testImage.texture?.cgImage() != nil{
image = UIImage(cgImage: (testImage.texture?.cgImage())!)
}
結果(操場):
這正是我的形象是什麼樣子。希望這可以幫助!
這真的很好,謝謝。我發現使用紋理意味着我需要一些額外的圖像規模的工作,但現在都很好。 –
不客氣。如果您還有其他問題,請詢問 –
你不能直接做到這一點。
首先你需要從SKSpriteNode
得到texture
。
後,你可以得到的圖像與textureOfNode!.cgImage()
如下圖所示例如:
let testNode = SKSpriteNode(imageNamed: "Spaceship")
let textureOfNode = testNode.texture
let imageFromTexture = UIImage.init(cgImage: textureOfNode!.cgImage())
print(imageFromTexture) //<UIImage: 0x61000008afa0>, {394, 347}
也是一個不錯的答案!謝謝 –
高興地幫助你.. :) –
請檢查答案並回復 –