Есть несколько способов сделать это: getImageData
и putImageData
методы Ссылка , однако putImageData
и getImageData
довольно медленные Другой способ - сохранить данные в памяти image
и вызвать их из того, что гораздо быстрее, чем третий, упомянутый выше andrewmu, который включает копирование в другой элемент canvas. Я включил примеры для первого и второго типа.
Метод изображения в памяти
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
savedData = new Image();
function save(){
// get the data
savedData.src = canvas.toDataURL("image/png");
}
function restore(){
// restore the old canvas
ctx.drawImage(savedData,0,0)
}
метод getImageData putImageData
// Setup our vars, make a new image to store the canvas data
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d"),
canvasData = '';
function save(){
// get the data
canvasData = ctx.getImageData(0, 0, 100, 100);
}
function restore(){
// restore the old canvas
ctx.putImageData(canvasData, 0, 0);
}