2011-05-26 28 views
5

có thể chuyển đổi trang HTML thành hình ảnh trong ca cao không?Để chuyển đổi tài liệu HTML sang hình ảnh trong ca cao

Thực ra tôi đã tạo chế độ xem hoàn chỉnh trong HTML và bây giờ tôi muốn chuyển đổi toàn bộ bản xem trước html thành hình ảnh (bất kỳ jpeg hoặc png, v.v ...).

Tôi không thể tìm thấy bất kỳ tài nguyên hoặc mẫu nào trên web, cung cấp một số loại trợ giúp cho các truy vấn trên của tôi.Được đánh giá cao nếu ai đó có thể chia sẻ sự khôn ngoan của mình về cách tôi có thể đạt được điều này.

Thanks in advance ..

+0

bạn có thích làm điều này trong iOS không? –

Trả lời

7

Trước hết, tôi muốn cảm ơn sergio ... câu trả lời của anh ấy đã khiến tôi bắt đầu nhưng tôi nghĩ tôi sẽ chia sẻ một số mã mà tôi không thấy rõ ràng là tôi phải viết để làm cho nó hoạt động:

Dưới đây là làm thế nào để tạo ra một hình ảnh thu nhỏ cho một trang mà không bao giờ có nó hiển thị:

// 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]]; 

Sau đó thực hiện điều này trong đại biểu của bạn:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    UIGraphicsBeginImageContext(webView.bounds.size); 
    [webView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *webViewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    NSData *thumbnailData = UIImagePNGRepresentation(webViewImage); 
    [webView removeFromSuperview]; 
} 

Cuối cùng, để hiển thị thumbnail này you'l l cần một cái gì đó như:

thumbnailImageView.image = [UIImage imageWithData:thumbnailData]; 

Điều tôi sẽ đề cập, tôi muốn tạo nhiều hình thu nhỏ cùng một lúc. Tôi đã tìm thấy sử dụng objc_setAssociatedObject()objc_getAssociatedObject() để rất hữu ích khi theo dõi xem webView nào đang tải hình thu nhỏ nào. Đi sâu vào chi tiết về cách làm việc đó là vượt quá phạm vi của câu hỏi này, mặc dù.

+0

Câu trả lời hay. Chỉ có một điều nhỏ nhặt mà tôi không thể làm việc. Tôi không muốn hình ảnh ở bất kỳ tỷ lệ nào. vì vậy tôi đã cố gắng để tắt scaleToFit và đặt chiều rộng và chiều cao của riêng tôi trong initWithFrame. Tuy nhiên, bây giờ tôi có một hình ảnh trống. Bất kỳ ý tưởng? Cảm ơn – hishamaus

+0

@hishamaus: Nếu bạn có thêm câu hỏi, bạn nên đăng chúng một cách riêng biệt, tôi nghĩ vậy. Tôi đã không làm việc với Obj-C nhiều thời gian gần đây vì vậy tôi không chắc chắn làm thế nào để trả lời câu hỏi của bạn. – ArtOfWarfare

3

Bạn có thể vẽ cái nhìn của bạn trong một bối cảnh hình ảnh, như thế này:

UIWebView* view = ... 
.... 
UIGraphicsBeginImageContext(view.bounds.size);  
[view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
NSData *imagedata = UIImagePNGRepresentation(viewimage); 
NSString *encodedString = [imageData base64Encoding]; 

tùy chọn khác sẽ được sử dụng công cụ Quartz PDF để tạo file PDF.

+0

Thực ra tôi đang cố gắng sử dụng hình ảnh làm hình thu nhỏ trong plugin QuickLook để không thể sử dụng chế độ xem web trong đó. Cảm ơn trước .. –

+0

@Vinaj Jain: Tôi đặt ở đó một 'UIWebView' bởi vì bạn đã nói" tôi đã tạo chế độ xem hoàn chỉnh trong HTML và bây giờ tôi muốn chuyển đổi toàn bộ bản xem trước html ". Vì vậy, đây là những gì bạn có, tôi đoán. Mã của tôi sẽ tạo ra một 'UIImage' mà bạn có thể đặt trong plugin của bạn và nó sẽ làm việc với bất kỳ chế độ xem nào bạn có thể vẽ trên màn hình. – sergio

+0

okkk ... tôi sẽ cố gắng ... cảm ơn rất nhiều sự giúp đỡ của bạn ... –

Các vấn đề liên quan