假设我们有一个画布:
<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;
}