因此,我注意到在某些设备上,我捕获的图像(位图)怪异地旋转了-通常旋转到90度。我确实创建了一个可以正确旋转它的函数,但是现在的问题是,有时图像完全可以被捕获(捕获)。有什么方法可以确定捕获的图像是否旋转(方向)?
我发现了这样的代码片段:
try {
ExifInterface exif = new ExifInterface(filename);
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION,
ExifInterface.ORIENTATION_NORMAL);
int rotate = 0;
switch(orientation) {
case ExifInterface.ORIENTATION_ROTATE_270:
rotate-=90;break;
case ExifInterface.ORIENTATION_ROTATE_180:
rotate-=90;break;
case ExifInterface.ORIENTATION_ROTATE_90:
rotate-=90;break;
}
...
}
但是ExifInterface exif = new ExifInterface(filename);
期望创建一个文件或文件uri。这是否意味着我必须先将位图更改为文件,然后再使用此方法,还是有其他方法可以解决此问题?
P.S。我正在使用Android's Camera X
答案 0 :(得分:0)
建议使用AndroidX ExifInterface库。如果捕获的图像是Jpeg,则可以通过使用InputStream包装缓冲区来使用ExifInterface(InputStream)。
答案 1 :(得分:0)
不同设备上的传感器方向不同。 CameraX会尊重这一点,并在回调中返回带有旋转值的图像,该图像可用于将其垂直旋转。 https://developer.android.com/reference/androidx/camera/core/ImageCapture.OnImageCapturedListener.html#onCaptureSuccess(androidx.camera.core.ImageProxy,%20int)
答案 2 :(得分:0)
您可以尝试
var y = document.querySelector("#about input").value