【发布时间】:2014-06-14 07:10:54
【问题描述】:
我在使用 HTML5 画布旋转图像时遇到问题。我想我只是算错了,如果能帮助我解决这个问题,我将不胜感激。
在移动设备上,我在 150 x 558 像素的画布上捕获用户签名。我不是试图创建一个 558 像素 x 150 像素的图像,它只是将捕获的签名旋转 90 度。下面是我目前提出的代码的 sn-p。正如你可能猜到的那样,我对这方面的数学没有很好的把握。我相信我的程序是正确的,只是数字不正确。
我想要做的是: 1)将画布的中心设置为中间,偏移我图像的高度和宽度 2) 将画布旋转 90 度 3)绘制图像 4) 将画布翻译回来。
编辑:这是一个 JSFiddle:http://jsfiddle.net/x9FyK/
var $signature = $("#signature");
var signatureData = $signature.jSignature("getData");
console.log(signatureData);
var img= new Image();
img.onload = function() {
var rotationCanvas = document.createElement('canvas');
rotationCanvas.width = img.height;
rotationCanvas.height = img.width;
var context = rotationCanvas.getContext("2d");
context.translate((rotationCanvas.width/2) - (img.width/2), -(rotationCanvas.height/2) - img.height/4);
context.rotate(Math.PI/2);
context.drawImage(img,0,0);
context.translate(-((rotationCanvas.width/2) - (img.width/2)), -(-(rotationCanvas.height/2) - img.height/4));
var rotatedData = rotationCanvas.toDataURL();
...Handling rotated data here
};
img.src = signatureData;
如果我可以提供更多信息,请告诉我。
提前感谢您的帮助,
【问题讨论】:
-
你能发一个 jsfiddle 链接吗?
-
我用小提琴编辑了帖子:jsfiddle.net/x9FyK
标签: javascript html canvas