是否可以將HTML頁面轉換爲可可中的圖像?將HTML文檔轉換爲可可中的圖像
其實我已經在HTML中創建了完整的視圖,現在我想要將整個html預覽轉換爲圖像(任何jpeg或png等)。
我在網上找不到任何資源或樣本,這對我的上述查詢提供了某種幫助。非常感謝,如果有人能分享他的智慧,我可以如何實現這一點。
在此先感謝..
是否可以將HTML頁面轉換爲可可中的圖像?將HTML文檔轉換爲可可中的圖像
其實我已經在HTML中創建了完整的視圖,現在我想要將整個html預覽轉換爲圖像(任何jpeg或png等)。
我在網上找不到任何資源或樣本,這對我的上述查詢提供了某種幫助。非常感謝,如果有人能分享他的智慧,我可以如何實現這一點。
在此先感謝..
首先,我要感謝塞爾吉奧......他的回答讓我開始了,但我想我會分享一些我沒有發現明顯的代碼,以使其工作:
下面是如何使一個頁面的縮略圖時無需它顯示:最後
- (void)webViewDidFinishLoad:(UIWebView *)webView {
UIGraphicsBeginImageContext(webView.bounds.size);
[webView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *webViewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *thumbnailData = UIImagePNGRepresentation(webViewImage);
[webView removeFromSuperview];
}
,顯示該縮略圖you'l:
// Your width and height can be whatever you like, but if you want this to render
// off screen, you need an x and y bigger than the superview's width and height
UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(largerScreenDimension, largerScreenDimension, largerScreenDimension, largerScreenDimension)];
[self.view addSubview:webView]; // UIWebViews without an assigned superview don't load ever.
webView.delegate = self; // or whoever you have implement UIWebViewDelegate
webView.scalesToFit = YES; // This zooms the page appropriately to fill the entire thumbnail.
[webView loadRequest:[NSURLRequest requestWithURL:url]];
然後在你的委託實現這個我需要這樣的東西:
thumbnailImageView.image = [UIImage imageWithData:thumbnailData];
作爲一件額外的事情,我會提到,我想要一次生成多個縮略圖。我發現使用objc_setAssociatedObject()
和objc_getAssociatedObject()
對跟蹤哪個webView加載哪個縮略圖非常有幫助。不過,詳細討論這個問題的效果如何超出了這個問題的範圍。
很好的答案。只有一件小事我無法工作。我不希望圖像以任何比例。所以我試圖關閉scaleToFit並將自己的寬度和高度放在initWithFrame中。但是,現在我得到一個空的圖像。有任何想法嗎?謝謝 – hishamaus 2015-02-12 06:21:36
@hishamaus:如果你還有其他問題,你應該單獨發佈,我想。我最近沒有使用Obj-C,所以我不知道如何回答你的問題。 – ArtOfWarfare 2015-02-13 20:53:38
可以繪製在圖像方面您認爲是這樣的:
UIWebView* view = ...
....
UIGraphicsBeginImageContext(view.bounds.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imagedata = UIImagePNGRepresentation(viewimage);
NSString *encodedString = [imageData base64Encoding];
另一種選擇是使用Quartz PDF引擎創建一個PDF。
其實我試圖在QuickLook插件中使用圖片作爲縮略圖,所以使用webview是不可能的。在此先感謝.. – 2011-05-26 09:40:57
@Vinaj Jain:我在那裏放了一個'UIWebView',因爲你說過「我已經在HTML中創建了完整的視圖,現在我想轉換整個HTML預覽」。所以這就是你所擁有的,我想。我的代碼會創建一個'UIImage',你可以將它放在你的插件中,它可以用你在屏幕上繪製的任何視圖。 – sergio 2011-05-26 09:44:06
okkk ...我會盡力...非常感謝您的幫助... – 2011-05-26 09:53:51
你喜歡在iOS中做這個嗎? – 2011-05-26 09:25:40