Холст рисует повернутое изображение



Я пытаюсь использовать 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);


Но я никак не могу подогнать его под себя.

Кто-нибудь знает, почему холст был бы нарисовать изображение повернутым? Любая помощь, чтобы получить картину, нарисованную правильно на холсте, очень ценится!!



Спасибо!

559   2  

2 ответов:

Это, вероятно, зависит от того, как вы держите телефон. Эта информация (ориентация) хранится в данных exif изображения, и вы должны повернуть его соответствующим образом.
Одна библиотека, которая может помочь вам в этом, - это JavaScript Load Image

Я никогда не пытался сделать снимок с помощью javascript, но я занимаюсь разработкой мобильных устройств ios.

Причина, по которой изображение выходит боком, заключается в том, что apple считает, что удержание телефона с кнопкой home, обращенной вправо, является единственным приемлемым способом сделать снимок. Это также известно как состояние "вверх".

Дополнительную информацию о том, почему ваш iPhone делает снимки сбоку, можно найти здесь: http://rotatemailer.com/sideways-pictures.html

В ios его очень легко вращать, поэтому в javascript я не очень уверен, как это правильно сделать.

Comments

    Ничего не найдено.