html2canvas不会在左上角渲染图像

时间:2017-11-20 06:51:32

标签: html2canvas

我的网页上有一个图表,我使用html2canvas将其提取到图像中。提取的图像质量很模糊,我希望通过渲染它的尺寸增加4倍来提高其质量。

正常功能:

function exportChart() {
html2canvas($("[id$='extract']"), {
    onrendered: function (canvas) {
        var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
        var a = document.createElement('a');
         a.href = image;
         a.download = 'chart.png';
         a.click();
    }
});

更大的尺寸功能:

function exportChart(e) {
var scaleBy = 4;
var w = 1000;
var h = 1000;
var div = document.querySelector('#extract');
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) {
        var image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 
        var a = document.createElement('a');
         a.href = image;
         a.download = 'chart.png';
         a.click();
    }
});

结果是我获得了更好的图像,但它没有放在左上方,这对正常功能来说不会发生。 如何将较大的图像(右侧)放在左上角? For your reference

1 个答案:

答案 0 :(得分:0)

事实证明context.scale()函数也改变了画布内Image的起始位置。

因此,我们将按照我的描述得到结果。