1

使用 JS Canvas putImageData 操作像素时,所需颜色和渲染颜色存在差异。绘制 RGB(255,255,0) 时,画布上的输出是 RGB(254,254,86)。其他值也是如此。问题出在哪里?

这是JSFiddle

检查截图

var canvas = document.getElementById('canvas');
var canvasWidth = canvas.width;
var canvasHeight = canvas.height;
var ctx = canvas.getContext('2d');
var imageData = ctx.getImageData(0, 0, canvasWidth, canvasHeight);
var data = imageData.data;
var red = 255;
var green = 255;
var blue = 0;
var alpha = 255;
for (var y = 0; y < canvasHeight; ++y) {
  for (var x = 0; x < canvasWidth; ++x) {
    var index = (y * canvasWidth + x) * 4;
    data[index] = red;
    data[++index] = green;
    data[++index] = blue;
    data[++index] = alpha;
  }
}
ctx.putImageData(imageData, 0, 0);
4

0 回答 0