如何将UIWebView内容保存到照片库
-(IBAction)save:(id)sender{
UIImage* image = nil;
UIGraphicsBeginImageContext(webView.frame.size);
{
image = UIGraphicsGetImageFromCurrentImageContext();
}
UIGraphicsEndImageContext();
if (image != nil) {
UIImageWriteToSavedPhotosAlbum(image,self, nil, nil);
}
}
此代码正在保存空白页面。
答案 0 :(得分:1)
我发布了一个应用程序(Web2Pic),请相信我 UIGraphicsBeginImageContext(webView.frame.size); 除了从我们的UIWebView中的可见区域获取一个小图像之外什么都不做; - (
正确的方法有点复杂,但它只是有效:
1.在我们的UIWebView中使用 JavaScript 来获取这些浮点值:
//Whole page size in HTML coordinate
document.body.scrollWidth
document.body.scrollHeight
//UIWebView visible size in HTML coordinate
window.innerWidth
window.innerHeight
2.现在我们可以将整个页面“剪切”成几十个UIWebView大小的小块。然后我们可以单独捕获每个小块并将它们保存到我们的缓存中。我通过计算页面偏移量来实现这一点,并使用 UIGraphicsBeginImageContext(webView.frame.size); 来获取图像数组。此外,您应该将图像阵列缓存到文件系统中,否则应用程序最终会崩溃!
3.当我们最终获得所有小部分时,我们可以启动全分辨率上下文: UIGraphicsBeginImageContext(CGSizeMake(document.body.scrollWidth,document.body.scrollHeight));
4.将每个小图像放入基于坐标的大背景中。并且小心角落,每行/每行中的最后一张图片可能不是完整图片。5.还有一步:保存大图像。 不要将其保存到PhotoAlbum ,因为iOS会自动降低相册中图像的分辨率。相反,我们可以将其保存到文件系统中并启用应用程序的 iTunes文件共享支持,甚至可以编写一个简单的应用程序内照片管理器。
希望这些可以提供帮助; - )
Yichao Peak Ji