JSFiddle - React, Tailwind, and code Playground

by Subhasish2015

HTML

<canvas id="canvas" width=300 height=300></canvas><br>
<button id="clockwise">Rotate right</button>
<button id="counterclockwise">Rotate left</button>

CSS

body{ background-color: ivory; }
canvas{border:1px solid red;}

JavaScript

var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");

var angleInDegrees=0;

var image=document.createElement("img");
image.onload=function(){
		canvas.width = image.width; canvas.height = image.height;
    ctx.drawImage(image, 0, 0);
}
image.src="https://s3-eu-west-1.amazonaws.com/static.melkweg.nl/uploads/images/scaled/event_header/21747";

$("#clockwise").click(function(){ 
    angleInDegrees+=90;
    drawRotated(angleInDegrees);
});

$("#counterclockwise").click(function(){ 
    angleInDegrees-=90;
    drawRotated(angleInDegrees);
});

function drawRotated(degrees){
    ctx.clearRect(0,0,canvas.width,canvas.height);
    ctx.save();
    ctx.translate(canvas.width/2,canvas.height/2);
    ctx.rotate(degrees*Math.PI/180);
    ctx.drawImage(image,0,0);
    ctx.restore();
}