iPhone 截图

Posted

技术标签:

【中文标题】iPhone 截图【英文标题】:iPhone Screenshots 【发布时间】:2010-07-27 17:28:52 【问题描述】:

我一直在使用 UIGetScreenImage() 来获取 UIImagePickerController 的屏幕截图。基本上我使用相机叠加层,然后当我截取屏幕截图时,我有相机预览显示的图像以及我的叠加层,这正是我需要的。

现在 UIGetScreenImage() 已被禁止,我无法找到方法来做到这一点。它只是为相机显示黑色。

编辑:我所有的其他视图都显示得很好,只是不是实际的相机预览。有什么想法吗??!?!?

这是我目前正在使用的代码。


UIGraphicsBeginImageContext(picker.view.bounds.size);
[picker.view.layer renderInContext:UIGraphicsGetCurrentContext()];
CGContextDrawImage(context, bounds, camView.CGImage);
UIImage* screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(screenImage, nil, nil, nil); 
UIGraphicsEndImageContext();

任何想法如何获得叠加层 + 相机图像?

谢谢!

【问题讨论】:

【参考方案1】:

这与你的略有不同。

CGRect screenRect = [[UIScreen mainScreen] bounds];
        UIGraphicsBeginImageContext(screenRect.size);
        [self.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *sShot = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum (sShot, nil, nil, nil);

这行得通吗?

如果没有,您可能想尝试通过iphonedevsdk.com 询问,因为他们专注于 iPhone 的所有方面。

【讨论】:

谢谢,我试了一下,结果相同(UIImagePickerController 下面的视图。我也会在那里发一个问题,看看是否有人以前做过。【参考方案2】:

让他们拍照。然后将你的图片叠加在上面。

Create a UIImage from two other UIImages on the iPhone

【讨论】:

谢谢,不过这有点过分了。只需要从视图本身获取图像。不过我可能不得不走那条路。 我认为删除 API 的原因是因为在没有用户干预的情况下获取屏幕截图违反了安全性。我认为有很多方法可以这样侵犯隐私。不确定这是否正确,但除此之外,我无法很好地解释为什么它被删除而别无选择。 感谢您的解释!我确信有办法做到这一点并遵守准则,只是烦人而已!

以上是关于iPhone 截图的主要内容,如果未能解决你的问题,请参考以下文章

iphone 4.7 英寸和 5.5 英寸屏幕截图尺寸是多少?

iPhone 截图

我们应该为应用商店提交 iPhone 4 大小的屏幕截图吗?

iPhone - 帮助 CGGradient CreateWith 颜色组件并根据屏幕截图创建渐变

如何将iphone屏幕截图保存为jpeg图像?

iPhone模拟器的屏幕截图应用程序[关闭]