小编Bre*_*nan的帖子

Android前置摄像头图像保存颠倒

我正在构建一个使用相机功能的 Android 应用程序。我遇到的问题是从前置摄像头获取的图像数据 (byte[]) 在我的三星 s7 和 Nexus 手机上颠倒过来。它在预览中显示正确,但在我按原样保存数据然后在图库中显示图像后,它们全部颠倒了。我知道我可以在保存之前翻转图像数据,但我已经在运行 4.4 (kitkat) 的 blu C 5.0 HD 上测试了代码,并且该手机上的图像数据以正确的方式定向。所以翻转图像总是会导致其他设备上的错误。有人告诉我,这个问题是因为在生产新的三星和 Nexus 手机时,前置摄像头是倒置的,以节省空间。我不确定这是否正确,但如果是这样,如果我翻转所有图像,它会弄乱具有正确相机方向的手机。那么有没有办法在保存图像之前检测图像数据的方向呢?

这是我正在使用的代码:

mCamera.takePicture(null, null, mPicture);
Run Code Online (Sandbox Code Playgroud)

打回来:

private final Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {

        processCameraCallback(data);
    }
};
Run Code Online (Sandbox Code Playgroud)

处理数据:

    public void processCameraCallback(byte[] data) {
    confirmPhoto(true);
    //Make a new empty picture file
    try {
        pictureFile = Utils.createImageFile();
    } catch (IOException ex) {
        // Error occurred while creating the File
        Log.e(TAG, "Failed to create photo file: " …
Run Code Online (Sandbox Code Playgroud)

camera android orientation android-camera

2
推荐指数
1
解决办法
4619
查看次数

标签 统计

android ×1

android-camera ×1

camera ×1

orientation ×1