Ну, вы не можете делать это так, как вы это делаете. Вы также не можете сделать:
img = new Image();
img.src = canvas2.getContext();
Это не сработает. Но вам не нужно этого делать, потому что вы можете нарисовать один холст на другом с помощью drawImage(canvas, x, y)
Вам нужно что-то похожее на:
var outputCanvas = document.getElementById("outputCanvas");
outputCtx = outputCanvas.getContext('2d');
outputCtx.scale(x,y);
outputCtx.rotate(radians);
outputCtx.drawImage(canvas2, 0, 0);
В зависимости от того, как вы хотите повернуть и масштабировать изображение, находящееся на canvas2, перед его рисованием в outputCanvas