【发布时间】:2019-03-19 20:00:15
【问题描述】:
我正在制作一个应用程序,在该应用程序中,我必须在服务中每隔一秒拍摄一张照片,而无需启动相机预览。
我在服务中写了以下代码,可以拍照了。
if (cameraId < 0) {
Log.d(TAG, "No camera found");
}
else
{
camera = Camera.open(cameraId);
camera.startPreview();
}
camera.takePicture(null, null, bitmapHandler);
在 bitmapHandler 类中,我在
中获取捕获图像数据@Override
public void onPictureTaken(byte[] data, Camera camera) {
.
.
.
}
- 当我以纵向模式拍照时,生成的图像顺时针旋转 90 度。
- 当我在横向模式下拍照时,生成的图像是正确的。
- 当我在反向横向模式下拍照时,生成的图像旋转了 180 度
- 当我在反向模式下拍照时,生成的图像旋转了 270 度 我做了什么来获得正确的图像,以便我可以将该图像输入我的神经网络。
我尝试了什么:当图像以纵向模式拍摄时,我将位图旋转了 90,但仍然无法找到图像是在哪种模式下拍摄的。
Camera API 有没有办法知道或控制旋转角度?
【问题讨论】:
-
设备方向不是Camera API的一部分,但您可以从设备中找到它
-
感谢@AlexCohn,我可以使用 OrientationEventListener 在我的服务中获取轮换更改信息
标签: android image android-camera android-bitmap image-rotation