首页 文章

无法在JavaScript中使用putImageData更新HTML5画布像素颜色

提问于
浏览
1

这是我的完整代码:

<canvas width="1366" height="768"></canvas>
<script> 
var canvas = document.querySelector('canvas');
var ctx = canvas.getContext('2d');

var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
var data = imageData.data;

for (var i = 0; i < data.length; i += 4) {
      data[i]     = 0;
      data[i + 1] = 0;
      data[i + 2] = 0;
    }
ctx.putImageData(imageData, 0, 0);
</script>

即使我已将每个颜色通道的值设置为0,画布仍然保持白色,就像没有任何更改一样 .

这是网页上唯一的代码,开发人员控制台中没有错误 .

1 回答

  • 0

    如评论中所述,您的Alpha通道很可能是0使画布透明 . 要解决此问题,请在for循环中尝试以下操作:

    for (var i = 0; i < data.length; i += 4) {
       data[i]     = 0;
       data[i + 1] = 0;
       data[i + 2] = 0;
       data[i + 3] = 255;
    }
    

相关问题