[正确旋转使用ImageCapture在android上拍摄的图像

问题描述 投票:0回答:1

我正在使用ImageCapture api从用户设备的摄像头捕获屏幕快照。

问题是,在android上拍摄的照片旋转不正确。在图片预览之前,上传之前和上传之后,它们的旋转均不正确。

我的计划是从我从图像捕获中获得的Blob中读取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时是否可以检测图像是否旋转不正确?

javascript android exif image-capture mediastream
1个回答
0
投票

取决于您所使用的设备,分两步拍摄后应对图像进行处理:

  1. 验证照片是否旋转。
  2. 如果需要旋转照片。

要验证照片是否旋转,您可以使用ExifInterface,而旋转可以使用矩阵将其反转并与位一起播放

您可以在this question中找到更多相关信息和代码示例

© www.soinside.com 2019 - 2024. All rights reserved.