0

我有一个有循环的函数。在循环中它创建一个画布并设置不透明度。然后它设置背景颜色并将画布转换为图像。

不知何故,在画布上设置了不透明度,但没有设置背景颜色。

if (remain <= 0) {
    var canvas = document.createElement('canvas');
    context = canvas.getContext('2d');
    for (var i = 0; i < img.length; ++i) {
        if (img[i]) {
         var opacity = item.opa;
         context.globalAlpha = opacity;
         context.drawImage(img[i],0,0);
        }
    }
    var background = mp.colbk; //returns rgb(255,0,0)
    context.fillStyle = background;
    var im = new Image();
    im.src = canvas.toDataURL();
}

我不知道为什么我的背景没有被设置。有什么建议么?

先感谢您。

4

1 回答 1

1

使用context.fillStyle = background,您不会设置画布的背景颜色。相反,它为画布设置绘图工具的填充颜色。

也就是说,只适用于事后context.fillStyle在画布上绘制的线条或形状。


要使用颜色填充画布,请使用以下fillRect()函数:

context.fillStyle = background;
context.fillRect(0, 0, canvas.width, canvas.height);

这张帆布备忘单被证明是有帮助的

于 2017-04-20T21:19:11.200 回答