Я хочу преобразовать SKSpriteNode в UIImage.cast SKSpriteNode to UIImage
let testImage = SKSpriteNode(imageNamed: "PlainProject") as! UIImage
, но я получаю сбой на резьбе выше. Есть ли другой способ сделать это?
Я хочу преобразовать SKSpriteNode в UIImage.cast SKSpriteNode to UIImage
let testImage = SKSpriteNode(imageNamed: "PlainProject") as! UIImage
, но я получаю сбой на резьбе выше. Есть ли другой способ сделать это?
Вы должны получить cgImage
от texture
спрайта, а затем бросить его UIImage
:
let testImage = SKSpriteNode(imageNamed: "someImage.png")
let image = UIImage(cgImage: (testImage.texture?.cgImage())!)
или более качественная версия без снятия усилия a cgImage
, которые могут быть nil
:
let image = UIImage()
if testImage.texture?.cgImage() != nil{
image = UIImage(cgImage: (testImage.texture?.cgImage())!)
}
Результат (в детской площадке):
Это именно то, что мое изображение выглядит. Надеюсь это поможет!
Это действительно хорошо работает. Я обнаружил, что работа с текстурой означает, что мне нужна дополнительная работа по масштабированию изображения, но теперь все хорошо. –
Добро пожаловать. Если у вас есть еще один вопрос, пожалуйста, спросите –
Вы не можете напрямую это сделать.
Прежде всего, вы должны получить 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}
также хороший ответ! Спасибо –
Рад помочь вам .. :) –
, пожалуйста, проверьте ответы и ответьте –