【发布时间】:2015-08-20 19:23:59
【问题描述】:
我正在尝试使用 javascript 用我的 iphone 拍照并将图像绘制到画布上。我用
<input type="file" capture="camera" accept="image/*" id="takePictureField">
mobilePictureGet);
使用相机。一旦我选择了一张图片
document.getElementById("takePictureField").addEventListener('change', function(e) {
if(e.target.files.length == 1 && e.target.files[0].type.indexOf("image/") == 0) {
img.src = URL.createObjectURL(e.target.files[0]);
}
}
这会触发,图像会按照我想要的方式显示在标签中。 (到目前为止一切顺利),但是,当 img 标签已加载时,我将其绘制到画布上:
img.onload = function() {
ctx.drawImage(img, 0, 0, img.width,img.height);
}
它看起来旋转了 -90 度。我试过了
var x = width / 2;
var y = height / 2;
var angleInRadians = Math.PI / 2;
ctx.translate(x, y);
ctx.rotate(angleInRadians);
ctx.drawImage(img, -width / 2, -height / 2, img.width, img.height);
ctx.rotate(-angleInRadians);
ctx.translate(-x, -y);
但我无法让它适合。
有谁知道为什么画布会绘制旋转的图像?非常感谢任何有助于在画布上正确绘制图片的帮助!
谢谢!
【问题讨论】:
标签: javascript canvas camera rotation drawimage