带有相机视图的编程屏幕截图



我使用以下代码来截取屏幕的屏幕截图,但它将相机视图替换为全黑(尽管所有其他 UI 元素都很好——我需要相机视图以及 UI 元素(。

我发现的类似问题的所有答案要么非常陈旧/已弃用,要么在 Swift 中。如果有人对此问题有一个简单的Obj-C 解决方案,将不胜感激。

谢谢!

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
UIGraphicsBeginImageContextWithOptions(self.view.window.bounds.size, NO, [UIScreen mainScreen].scale);
} else {
UIGraphicsBeginImageContext(self.view.window.bounds.size);
}
[self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(image);
if (imageData) {
[imageData writeToFile:@"Screenshot.png" atomically:YES];
NSLog(@"Screenshot write successful");
} else {
NSLog(@"Error while taking screenshot");
}

如果我理解正确,它可以帮助您获得视频屏幕 - https://stackoverflow.com/a/37789235/1678018
您可以在屏幕图像中添加此图像(您可以使用UIGraphicsGetImageFromCurrentImageContext(。

在另一个 UIImage 之上添加 UIImage 的示例方法:在另一个 UIImage 之上添加 UIImage

最新更新