ios – 如何以编程方式在Sprite-Kit中截取屏幕截图?

ios – 如何以编程方式在Sprite-Kit中截取屏幕截图?,第1张

概述我一直在阅读有关如何以编程方式截取屏幕截图的已解决的问题,但我似乎无法得到我在sprite工具包中读到的内容.例如: 这个问题How to take a screenshot programmatically UIGraphicsBeginImageContext(self.window.bounds.size); [self.window.layer renderInContext:UI 我一直在阅读有关如何以编程方式截取屏幕截图的已解决的问题,但我似乎无法得到我在sprite工具包中读到的内容.例如:

这个问题How to take a screenshot programmatically

UIGraphicsBeginImageContext(self.window.bounds.size);    [self.window.layer renderInContext:UIGraphicsGetCurrentContext()];    UIImage *image = UIGraphicsGetimageFromCurrentimageContext();    UIGraphicsEndImageContext();    NSData * data = UIImagePNGRepresentation(image);    [data writetofile:@"foo.png" atomically:YES];

更新2011年4月:对于视网膜显示,将第一行更改为:

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])    UIGraphicsBeginImageContextWithOptions(self.window.bounds.size,NO,[UIScreen mainScreen].scale);else    UIGraphicsBeginImageContext(self.window.bounds.size);

给了我这个信息,我在游戏中测试了但是它没有用,因为SKScene上没有识别窗口.我尝试用场景替换它但是没有用.有什么建议?

我也试过这个:

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

我在这个问题中找到了:ios Sprite Kit screengrab?

但它似乎没有用,因为它不能识别第二行中的比例或界限.

解决方法 这是在Sprite-Kit中进行屏幕拍摄的最佳解决方案

UIGraphicsBeginImageContextWithOptions(self.vIEw.bounds.size,1);[self.vIEw drawVIEwHIErarchyInRect:self.vIEw.bounds afterScreenUpdates:YES];UIImage *vIEwImage = UIGraphicsGetimageFromCurrentimageContext();UIGraphicsEndImageContext();return  vIEwImage;
总结

以上是内存溢出为你收集整理的ios – 如何以编程方式在Sprite-Kit中截取屏幕截图?全部内容,希望文章能够帮你解决ios – 如何以编程方式在Sprite-Kit中截取屏幕截图?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存