正如问题所述,在iOS设备上,如果用户在uitextfield中输入URL,我想生成此URL的缩略图捕获。这怎么能实现?不幸的是,我不知道从哪里开始。在ios中生成网站屏幕截图
当然,我可以做到这一点的一种方式是将此URL发送到后端&从那里获取图像截图。我知道如何使用python或php来做这种事。但我想避免额外往返于我的后端服务器。
我想是这样 - (uiimage *)screenCapture:(nsurl *)url
正如问题所述,在iOS设备上,如果用户在uitextfield中输入URL,我想生成此URL的缩略图捕获。这怎么能实现?不幸的是,我不知道从哪里开始。在ios中生成网站屏幕截图
当然,我可以做到这一点的一种方式是将此URL发送到后端&从那里获取图像截图。我知道如何使用python或php来做这种事。但我想避免额外往返于我的后端服务器。
我想是这样 - (uiimage *)screenCapture:(nsurl *)url
根据您的问题,我想你会想事后操纵产生的屏幕截图。您可以以编程方式添加一个UIWebView加载所需的URL,然后采取加载的网页的快照,然后取出一个UIWebView 下面是步骤
一个UIImageView到您的viewController并将其连接到您的viewController类
@property (weak, nonatomic) IBOutlet UIImageView *image_Thumbnail;
具有在变量的URL名为 “webPageUrlString” 添加下列行
UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.frame];
webView.backgroundColor = [UIColor redColor];
NSURL *websiteUrl = [NSURL URLWithString:**webPageUrlString**];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl];
[webView loadRequest: urlRequest];
webView.delegate = self;
[self.view addSubview:webView];
现在您已请求加载URL,但无法呈现快照,除非网页已完全加载,因此您需要等待网页加载通知。为此,您必须订阅webView代理在这样的
@interface ViewController : UIViewController<UIWebViewDelegate>
头文件现在,您将实现“webViewDidFinishLoad”,并采取快照,那么你想隐藏并删除web视图。
-(void)webViewDidFinishLoad:(UIWebView *)webView{
viewImage = [[UIImageView alloc] initWithFrame:self.view.frame];
viewImage.backgroundColor = [UIColor greenColor];
UIGraphicsBeginImageContext(webView.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
viewImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[webView setAlpha:0];
[webView removeFromSuperview];
[self.view addSubview:viewImage];
}
现在你有截图你想在所谓的“viewImage”的属性,你可以做你想做的事情是什么,直到永远。)
你熟悉的OpenGL ES? – 2012-04-04 18:26:24
您很可能必须在服务器上执行此操作,因为在iOS上您必须使用Apple不允许在AppStore应用程序中访问的webkit – Otium 2012-04-04 18:26:31
也许这有助于:http://stackoverflow.com/questions/5469093/how -to-创建-的UIImage从 - 一个UIWebView – hburde 2012-04-04 20:23:35