While manipulating pixels with JS Canvas putImageData there is a difference in required and rendered color. While drawing RGB(255,255,0) the out put on canvas is RGB(254,254,86) instead. Same is the case with other values. Where is the problem?
Here is the JSFiddle
Check Screenshot
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);