Правильно повернуть изображение, снятое на Android с помощью ImageCapture - PullRequest
0 голосов
/ 06 ноября 2019

Я использую ImageCapture api для захвата снимка экрана с камеры пользовательского устройства.

Проблема в том, что фотографии, сделанные на Android, вращаются неправильно. Они неправильно вращаются как в предварительном просмотре фотографии, так и до загрузки изображения и после его загрузки.

Я планировал прочитать данные exif из большого двоичного объекта, полученного при захвате изображения, найти ориентацию в exifи используйте javascript для правильного поворота изображения, но нет доступных exif-данных, потому что это не jpg.

Мой код:

function takePhoto(img) { 
imageCapture.takePhoto()
.then(blob => {
  // EXIF.getData(blob, function() {
  //      myData = this;
  //      console.log( myData );
  //   });
    let url = window.URL.createObjectURL(blob);
    img.src = url;
    console.log( blob );
    // stop the camera and hide canavas
    stream.getVideoTracks()[0].stop();
    $("#webcam").hide();
    image = blob;
    $("#photo-info").slideDown('slow');
})
.catch(function (error) {
    console.log(error);
});
}; 

takePhoto(document.querySelector('#camera-feed'));

Есть ли способ определить, повернуто ли изображениенеправильно при использовании ImageCapture?

1 Ответ

0 голосов
/ 06 ноября 2019

Это зависит от того, какое устройство вы используете. После съемки необходимо выполнить два действия:

  1. Проверить, повернута ли фотография.
  2. Если необходимо повернуть фотографию.

Чтобы проверить, поворачивается ли фотография, вы можете использовать ExifInterface, а для поворота вы можете использовать матрицу для ее инвертирования, играя с битами

Вы можете найти более подробную информацию и пример кода на этот вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...