Я нашел лучший способ сделать это, создав другой холст, а затем добавив данные со старого холста непосредственно на новый следующим образом:
//Create a blank canvas to apply the old canvas to
var newCanvas = jQuery('<canvas></canvas>'),
newCanvasContext = newCanvas.getContext('2d');
//size the new canvas to mirror the old canvas
newCanvas[0].width = oldCanvas[0].width;
newCanvas[0].height = oldCanvas[0].height;
//copy the old canvas onto the new canvas with drawImage();
newCanvasContext.drawImage(oldCanvas[0], 0, 0, oldCanvas[0].width, oldCanvas[0].height);
Я обнаружил, что копирования узла холста недостаточно . выше необходим для дублирования холста и его данных .