簡體   English   中英

在Android中初始化相機后,如何反轉圖像?

[英]How to invert the image when the camera is initialized in Android?

初始化相機時,如果設備是垂直的,則圖像正面朝下顛倒,如果設備是水平的,則圖像顛倒正面。 如何做出正確的結論圖片?

**代碼租用**

package com.example.aleksey.camera;

import android.content.Context;
import android.hardware.Camera;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;

public class CameraPreview extends SurfaceView implements            SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;

public CameraPreview(Context context, Camera camera) {
super(context);
mCamera = camera;
mHolder = getHolder();
mHolder.addCallback(this);
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

public void surfaceCreated(SurfaceHolder holder) {

try {
    // create the surface and start camera preview
    if (mCamera == null) {
        mCamera.setPreviewDisplay(holder);
        mCamera.startPreview();
    }
} catch (Exception e) {
    Toast.makeText(getContext(), "Error setting camera preview",     Toast.LENGTH_SHORT).show();
}
}

public void surfaceChanged(SurfaceHolder holder, int format, int w,  int h) {
refreshCamera(mCamera);
}

public void refreshCamera(Camera camera) {
if (mHolder.getSurface() == null) {
    return;
}
try {
    mCamera.stopPreview();
} catch (Exception e) {
}

mCamera = camera;
try {
    mCamera.setPreviewDisplay(mHolder);
    mCamera.startPreview();
} catch (Exception e) {
    Toast.makeText(getContext(), "Error starting camera preview:",  Toast.LENGTH_SHORT).show();
}
}

@Override`enter code here
public void surfaceDestroyed(SurfaceHolder holder) {
 mCamera.release();
}

//     camera.setDisplayOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)

在代碼的末尾有未注釋的功能,如它應該工作,但我嘗試了所有選項,但沒有成功。

嘗試設定

camera.setDisplayOrientation(90);

方向正確。 不同的設備可能具有不同的傳感器方向,因此您應根據Devise的方向和傳感器的方向自己計算最終方向。 要獲取傳感器方向,請使用

 Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
 Camera.getCameraInfo(cameraIndex, cameraInfo);
 int sensorOrientation = cameraInfo.orientation;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM