当webview大于屏幕时,将UIWebview内容转换为UIImage

编程入门 行业动态 更新时间:2024-10-24 08:28:13
本文介绍了当webview大于屏幕时,将UIWebview内容转换为UIImage的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

非常类似于此问题(以及这个答案),我正试图从webview中取出UIImage。到目前为止,我正在使用答案中建议的代码,具体来说:

Very similar to this question (and also this answer), I'm trying to make an UIImage out from a webview. So far I'm using the code suggested in the answer, specifically:

UIGraphicsBeginImageContext(webview.bounds.size); [webview.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

但是,当webview的内容大于屏幕时,生成的图像不完整,缺少补丁。关于如何解决这个问题的任何想法?

However, when the contents of the webview are larger than the screen, the resulting images are not complete and have missing patches. Any ideas on how to fix this?

推荐答案

我得到了答案:

您必须在创建图像之前将Webview的框架设置为完整的内容大小。之后只需将大小设置回原点:

You have to set the frame of the Webview to the full content size just before you create the image. After this just set the size back to origin:

+ (UIImage *) imageFromWebView:(UIWebView *)view { // tempframe to reset view size after image was created CGRect tmpFrame = view.frame; // set new Frame CGRect aFrame = view.frame; aFrame.size.height = [view sizeThatFits:[[UIScreen mainScreen] bounds].size].height; view.frame = aFrame; // do image magic UIGraphicsBeginImageContext([view sizeThatFits:[[UIScreen mainScreen] bounds].size]); CGContextRef resizedContext = UIGraphicsGetCurrentContext(); [view.layer renderInContext:resizedContext]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // reset Frame of view to origin view.frame = tmpFrame; return image; }

更多推荐

当webview大于屏幕时,将UIWebview内容转换为UIImage

本文发布于:2023-11-15 16:54:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1596263.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:转换为   屏幕   内容   webview   UIImage

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!