使用phantomjs获得非常高质量的截图

时间:2017-01-04 07:35:14

标签: javascript phantomjs

我试图使用这个phantomjs脚本获得非常高质量的截图。但我得到的屏幕截图并不那么好。它不是那么清晰。屏幕截图中的清晰度很糟糕。我如何得到它高质量的截图??任何人都可以帮助我!! ....

这就是我的代码的样子......

var page = require('webpage').create();
page.viewportSize = { width: 1920, height: 1200 };
page.zoomfactor = 1;
page.open('myurl', function(status) {

    if (status !== 'success') {
        console.log('Unable to load the address!');
        phantom.exit();
    } else {
        window.setTimeout(function () {
            console.log('Load the address!');
            page.dpi = 300;
            page.render('d:/screenshots/Newpdf.png',{format: 'png', quality: '100'});
            phantom.exit();
        }, 300000); // Change timeout as required to allow sufficient time 
    }

  //phantom.exit();
});

1 个答案:

答案 0 :(得分:3)

也许你必须更加具体地谈论“清晰度糟透了”。我假设背景图像看起来很模糊。在这种情况下:背景图像是this one

  • 这是一个* .jpg,它是一个Lossy compression并且已经有了可见的工件。幻影无法神奇地提高JPEG的质量。
  • 它只有1920x1200 - 如果您的屏幕截图比那个大,那么会很模糊。幻影不能神奇地提高放大图像的质量 - 虽然看起来你似乎没有尝试这样做

同样的问题可能适用于the logo - 由于大规模降尺度,这可能会出现模糊和/或严重消除锯齿的边缘(原始尺寸为1890x827,但显示为~153.73x84 - 其中的分数为a-像素宽度可能是另一个问题。)

解决方案:使用您网站上显示的确切尺寸的图片,并在Photoshop / Gimp / Whatever中预先优化图像。避免缩放。避免有损压缩。尽量避免使用%-sizes,这可能会导致图像使用像素分数。