UIWebViewのキャプチャ画像を取得する

久々の開発小ネタです。

ふと思い立ってUIWebViewのキャプチャ取得ができないか考えて調べてみたところ、View自体のキャプチャを
すればいい事に気づいたので試してみました。 

参考にしたのはおなじみstackoverflowから。
core animation – How to capture current view screenshot and reuse in code? (iPhone SDK) – Stack Overflow

このままだとUIWebViewのサイズによっては黒枠ができてしまうのでviewのサイズで切り取るように書き換えます。

- (UIImage *)captureView:(UIView *)view {
    CGRect screenRect = [view bounds];
    
    UIGraphicsBeginImageContext(screenRect.size);

    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [view.layer renderInContext:ctx];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return newImage;
}

viewの引数にUIWebViewを渡すと、表示されていたページを・・・

webviewcap_01.png

キャプチャしてUIImageに変換されます。

webviewcap_02.png

サンプルも用意したのでどんな感じかお試しください。
Captureを押すと、上からニュッっと出てきます。

taiko19xx/webViewCaptureTest

コメントを残す