swift - 将 SKSpriteNode 转换为 UIImage

标签 swift uiimage skspritenode

我想将 SKSpriteNode 转换为 UIImage。

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

但是我在上面的线程上崩溃了。还有其他方法可以做到这一点吗?

最佳答案

您应该先获取 Sprite texturecgImage,然后将其转换为UIImage:

let testImage = SKSpriteNode(imageNamed: "someImage.png")
let image = UIImage(cgImage: (testImage.texture?.cgImage())!)

或者更好的版本,无需强制解开可能为nilcgImage:

let image = UIImage()
if testImage.texture?.cgImage() != nil{
    image = UIImage(cgImage: (testImage.texture?.cgImage())!)
}

结果(在 Playground 上):

enter image description here

这正是我的图像的样子。希望这有帮助!

关于swift - 将 SKSpriteNode 转换为 UIImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42175834/

相关文章:

ios - swift 中的 addsubview 命令后动画未运行

ios - 静态渐变图像与 CAGradientLayer?

swift - 将 Sprite 附加到 SKPhysicsBody

在 SKScene 类中快速更改 SKSpriteNode 图像

ios - Swift - 节点被触摸后延迟,直到它可以再次被触摸

objective-c - 如何在 Swift 或 Objective-C 中获取 JSON 数据结构的人类可读映射?

swift - ios13 UIPopoverViewController 显示 UITableViewController - 安全区域问题/表格缺失部分

ios - Xcode 在代码中看不到字体,但只在 IB 中看到

iphone - 从原始 RGBA 数据创建 UIImage

iphone - 如何检测 UIImage 中的 alpha 像素