这个问题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中截取屏幕截图?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)