拍摄 UIWebView 的快照/屏幕截图

Posted

技术标签:

【中文标题】拍摄 UIWebView 的快照/屏幕截图【英文标题】:Take snapshot / screenshot of UIWebView 【发布时间】:2010-08-11 12:14:34 【问题描述】:

如何拍摄UIWebView 控件的快照/屏幕截图?

【问题讨论】:

【参考方案1】:

接受的答案是正确的,但是屏幕截图不是视网膜分辨率。 使用UIGraphicsBeginImageContextWithOptions 并将其缩放参数设置为 0.0f 使其以原始分辨率捕获。

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
CGRect rect = [keyWindow bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];   
UIImage *capturedScreen = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

【讨论】:

【参考方案2】:

使用这个:

UIGraphicsBeginImageContext(rect.size);
[webView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

【讨论】:

截取网页视图时,只截取可见区域的截图。不考虑隐藏区域。【参考方案3】:

使用此代码截取屏幕截图并将其保存到库中

    UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, self, nil, nil);

您可以通过更改屏幕截图部分来更改

UIGraphicsBeginImageContext(self.view.bounds.size);

到你各自的价值 试试吧,对你有帮助

【讨论】:

以上是关于拍摄 UIWebView 的快照/屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章

Ios 在裁剪某些部分后拍摄屏幕快照

如何捕获包含所有内容的 UIWebview 的屏幕截图?

拍摄自动屏幕截图 [重复]

在 Android 中拍摄特定布局的“屏幕截图”

当应用程序处于横向模式时拍摄屏幕截图

JavaFX - 如何创建(不可见)WebView 的快照/屏幕截图