设置画布背景颜色

时间:2016-02-11 12:53:42

标签: javascript html canvas

我用Chart.js绘制时间序列图,使用<canvas>绘制。我们的用户希望能够下载这些图表的图像以放入他们的报告中。网站背景很暗,因此图表本身使用浅灰色。这意味着当用户右键单击(在Chrome中)并选择&#34;将图像另存为...&#34;他们得到一个带有灰色/白色线条的透明图像(显然不是非常明显)。

我一直试图覆盖canvas.toDataURL以便先绘制一个矩形as in this post,但是覆盖不起作用(我认为它不可写)。还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

function getCanvasImage(_ctx, _bgColor){
    var tmpCtx = document.createElement("canvas").getContext("2d");
        tmpCtx.canvas.width  = _ctx.canvas.width;
        tmpCtx.canvas.height = _ctx.canvas.height;
        tmpCtx.fillStyle = _bgColor;
        tmpCtx.fillRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);
        tmpCtx.drawImage(_ctx.canvas, 0, 0);

    return tmpCtx.canvas;
  }

// ...
// just call the function passing your canvas context and the background color
var graphImage = getCanvasImage(ctx, "#222");