Можно использовать холст, не отображая его на странице. Вы можете сделать следующее:
// Create a canvas element
var canvas = document.createElement('canvas');
canvas.width = 500;
canvas.height = 400;
// Get the drawing context
var ctx = canvas.getContext('2d');
// Then you can do stuff, e.g.:
ctx.fillStyle = '#f00';
ctx.fillRect(20,10,80,50);
Как только вы используете холст, вы, конечно, можете добавить его в документ
var element = document.getElementById('canvas_container');
element.appendChild(canvas);
Или вы можете сделать из него изображение:
var new_image_url = canvas.toDataURL();
var img = document.createElement('img');
img.src = new_image_url;
Или вы можете получить доступ к данным холста в виде значений с помощью:
var image_data = ctx.getImageData(0, 0, canvas.width, canvas.height);
var rgba_byte_array = image_data.data;
rgba_byte_array[0]; // red value for first pixel (top left) in the canvas