正如問題所述,在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