如何在webview完成渲染时截取屏幕截图

时间:2013-02-24 10:49:23

标签: macos webview screenshot

我想在webview完成渲染时截取屏幕截图。以下是我的代码:

-(void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
    if (frame != [sender mainFrame]) {
    return;
}
    NSBitmapImageRep *rep = [[[NSBitmapImageRep alloc] initWithFocusedViewRect:[sender bounds]] autorelease];

if (rep){
    NSImage *img = [[NSImage alloc] initWithData:[rep TIFFRepresentation]];
    NSData* imgData = [img TIFFRepresentation];

    NSArray* deskTopArrayPaths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
    NSString* deskTopPath = [deskTopArrayPaths objectAtIndex:0];
    NSString* pngPath = [NSString stringWithFormat:@"%@/SaveWebPage.png",deskTopPath];
    [[NSFileManager defaultManager] createFileAtPath:pngPath contents:imgData attributes:nil];
}
}

正常图像是:

enter image description here

但我的形象是:

enter image description here

任何人都告诉我为什么以及如何改善这种情况!谢谢你!

0 个答案:

没有答案