首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML2canvas生成模糊图像

HTML2canvas生成模糊图像
EN

Stack Overflow用户
提问于 2014-04-02 07:02:47
回答 9查看 81.1K关注 0票数 31

我使用jsPDF,它使用html2canvas从某个html元素生成一个图像并插入到.pdf文件中。但是html2canvas上有一个问题,它从html生成模糊的图像。见下面的例子:

HTML内容:

http://puu.sh/7SZz4.png

html2canvas生成的图像:

http://puu.sh/7SZAT.png

是否有任何方法来修复它,或者是否有更好的选择来获得图像格式html?

谢谢!

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2014-04-02 17:42:22

我发现了我的问题。我的屏幕是Retina显示器,所以当canvas2html渲染时,由于视网膜屏幕上像素密度的不同,图像会呈现模糊。

在这里找到了解决方案:

https://github.com/cburgmer/rasterizeHTML.js/blob/master/examples/retina.html

票数 2
EN

Stack Overflow用户

发布于 2018-06-07 08:21:28

您可以在比例选项中使用html2canvas。

在最新的版本v1.0.0-alpha.1 1中,您可以使用scale选项来提高分辨率(scale: 2将使分辨率从默认的96dpi翻一番)。

代码语言:javascript
复制
// Create a canvas with double-resolution.
html2canvas(element, {
    scale: 2,
    onrendered: myRenderFunction
});
// Create a canvas with 144 dpi (1.5x resolution).
html2canvas(element, {
    dpi: 144,
    onrendered: myRenderFunction
});
票数 36
EN

Stack Overflow用户

发布于 2016-04-26 07:26:12

我有这个问题是因为我在视网膜显示器上。我用MisterLamb的解决方案解决了问题。

代码语言:javascript
复制
$(window).load(function () {

    var scaleBy = 5;
    var w = 1000;
    var h = 1000;
    var div = document.querySelector('#screen');
    var canvas = document.createElement('canvas');
    canvas.width = w * scaleBy;
    canvas.height = h * scaleBy;
    canvas.style.width = w + 'px';
    canvas.style.height = h + 'px';
    var context = canvas.getContext('2d');
    context.scale(scaleBy, scaleBy);

    html2canvas(div, {
        canvas:canvas,
        onrendered: function (canvas) {
            theCanvas = canvas;
            document.body.appendChild(canvas);

            Canvas2Image.saveAsPNG(canvas);
            $(body).append(canvas);
        }
    });
});

没有缩放的HTML和PNG

带有缩放的HTML和PNG

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22803825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档