Я пытаюсь получить UIImage из SKTexture, откуда SKTexture происходит из SKTextureAtlas. Который делает сложнее из-за того, что .cgImage () не работает на Atlases.
В любом случае, я придумала решение использовать CoreGraphi c, но, похоже, оно тоже не работает. Может быть, вы можете помочь мне, что я сделал не так здесь?
func image(with view: SKView) -> UIImage {
let format = UIGraphicsImageRendererFormat.default()
format.scale = UIScreen.main.scale
format.opaque = false
let renderer = UIGraphicsImageRenderer(size: view.bounds.size, format: format)
let image = renderer.image { ctx in
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
}
return image
}
func image(texture: SKTexture) -> UIImage {
let view = SKView(frame:CGRect(x: 0, y: 0, width: texture.size().width, height: texture.size().height))
let scene = SKScene(size: texture.size())
let sprite = SKSpriteNode(texture: texture)
sprite.position = CGPoint(x: view.frame.midX, y: view.frame.midY)
scene.addChild(sprite)
view.presentScene(scene)
return image(with: view)
}
let uiImage = image(texture: SKTexture(imageNamed: "HeavyCrossbow.png"))[!
[
]
Это решение не работает ни SKTextureAtlas, ни SKTextureAtlas. Есть идеи, что я сделал пропустил, как это сделать?
Ура, Шимон