生成未显示SKScene内容的图像

在我目前的SKScene中,我使用UIGraphicsGetImageFromCurrentImageContext从屏幕上的当前graphics生成一个图像。

但是,我想从不在屏幕上的场景生成图像。 一个我创造,但没有显示。 这可能吗?

这样做的原因是为用户创build一个自定义图像,当他们实现高分时,这是相似的,但不一样,我的主场景。

这是一种将节点内容捕获为PNG的方法。 请注意,当前的SpriteKit似乎在访问CGImage属性时存在内存泄漏,所以在DEBUG模式下使用它。

 + (NSData*) captureNodeAsPNG:(SKSpriteNode*)node skView:(SKView*)skView { NSData *data = nil; @autoreleasepool { SKTexture *captureTexture = [skView textureFromNode:node]; CGImageRef cgImageRef = captureTexture.CGImage; NSLog(@"capture texture from node as pixels : %dx %d", (int)CGImageGetWidth(cgImageRef), (int)(CGImageGetHeight(cgImageRef))); UIImage *capImg = [UIImage imageWithCGImage:cgImageRef]; data = UIImagePNGRepresentation(capImg); } return data; }