キャンバスがあるとします:
<canvas id="one" width="100" height="200"></canvas>
ボタンをクリックすると、キャンバスが時計回りに (中心を中心に) 90 度回転し、キャンバスの寸法も更新されます。
<canvas id="one" width="200" height="100"></canvas>
キャンバスの id は同じであることに注意してください。
トリミングやパディングを行わずに、単純に画像を時計回りに回転させることを想像してみてください。
新しいキャンバスを作成し、ピクセルごとに回転およびコピーする長い道のりを行う前に、何か提案はありますか?
コメントからの提案でサンプルコードを更新しても機能しません:
function imageRotatecw90(){
var canvas = document.getElementById("one");
var context = canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;
var myImageData = context.getImageData(0,0, cw,ch);
context.save();
context.translate(cw / 2, ch / 2);
context.rotate(Math.PI/2);
context.putImageData(myImageData, 0, 0);
context.restore();
canvas.width=ch;
canvas.height=cw;
}