rotateAndCache = function(image, angle) {
var offscreenCanvas = document.createElement('canvas');
var offscreenCtx = offscreenCanvas.getContext('2d');
offscreenCanvas.width = image.height;
offscreenCanvas.height = image.width;
offscreenCtx.translate(offscreenCanvas.width / 2, offscreenCanvas.height / 2);
offscreenCtx.rotate(angle * Math.PI / 180);
offscreenCtx.drawImage(image, -(image.width / 2), -(image.height / 2));
return offscreenCanvas;
}
Нашел решение, суем в функцию то что нужно вращать имг или канвас, пишем угол и возвращает повернутый канвас. который можем пихать в основной в любое место.