objective-c – 渲染快照SpriteKit场景到NSImage

objective-c – 渲染快照SpriteKit场景到NSImage,第1张

概述有没有人知道如何将一个完整的SKView或SKScene“快照”成NS Image? 我们已经能够使用textureFromNode API从节点及其所有子项创建SKTexture.但到目前为止,我们无法找出将图像数据提取为NSImage的方法.我们正在构建一个混合的Cocoa / SpriteKit应用程序,我们需要提取场景的小缩略图. 再次,这似乎可能在iOS(获得UIImage)使用draw 有没有人知道如何将一个完整的SKVIEw或SKScene“快照”成NS Image?

我们已经能够使用textureFromNode API从节点及其所有子项创建SKTexture.但到目前为止,我们无法找出将图像数据提取为NSImage的方法.我们正在构建一个混合的Cocoa / SpriteKit应用程序,我们需要提取场景的小缩略图.

再次,这似乎可能在iOS(获得UIImage)使用drawVIEwHIErarchyInRect:

UIGraphicsBeginImageContextWithOptions(self.vIEw.bounds.size,NO,scale);[self drawVIEwHIErarchyInRect:self.bounds afterScreenUpdates:YES];UIImage *vIEwImage = UIGraphicsGetimageFromCurrentimageContext();UIGraphicsEndImageContext();

但是如何在可可与NSImage做这个?帮帮我.

解决方法 没有直接访问SKTexture的图像数据.您可以将该节点呈现在屏幕外场景中,并捕获视图层次结构.我在iOS中使用这个代码作为参考:

class func imageFromNode(node : SKNode,inScene scene: SKScene) -> UIImage? {    if let texture = scene.vIEw?.textureFromNode(node) {        let vIEw = SKVIEw(frame: CGRect(origin: CGPointZero,size: texture.size()))        vIEw.allowsTransparency = true        vIEw.backgroundcolor = SKcolor.clearcolor()        let scene = SKScene(size: vIEw.bounds.size)        scene.vIEw?.allowsTransparency = true        scene.backgroundcolor = SKcolor.clearcolor()        let sprite  = SKSpriteNode(texture: texture)        sprite.position = CGPoint(x: CGRectGetMIDX(vIEw.frame),y: CGRectGetMIDY(vIEw.frame))        scene.addChild(sprite)        vIEw.presentScene(scene)        UIGraphicsBeginImageContextWithOptions(vIEw.bounds.size,false,0.0)        vIEw.drawVIEwHIErarchyInRect(vIEw.bounds,afterScreenUpdates: true)        let image = UIGraphicsGetimageFromCurrentimageContext()        UIGraphicsEndImageContext()        return image    }    return nil}
总结

以上是内存溢出为你收集整理的objective-c – 渲染/快照SpriteKit场景到NSImage全部内容,希望文章能够帮你解决objective-c – 渲染/快照SpriteKit场景到NSImage所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存