![](/img/trans.png)
[英]How to check camera Id (primary or secondary) which camera is open currently in android when user capture an image?
[英]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.