0

我搜索了这两天,但我还没有成功。

我的情况,我想检查相机像素分辨率/百万像素。如果相机的 Mp 大于 4,那么我需要重新调整大小并上传。

这是我的代码:

//to check the resolution

Camera mcamera ;

mcamera = Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);

Camera.Parameters param = mcamera.getParameters();
Camera.Size size = param.getPictureSize();

cam_height = size.height ;
cam_width = size.width ;

mcamera.release();

// my functionality

BitmapFactory.Options resample = new BitmapFactory.Options();
if(cam_height > pict_height || cam_width > pict_width )
    resample.inSampleSize = 2;  // whatever number seems appropriate 2 means 1/2 of the original
else
    resample.inSampleSize = 1;

capturedimg = BitmapFactory.decodeFile(fileUri.getPath() , resample);
resized_uri = bitmaptouri(capturedimg);

但这仅返回与手机屏幕分辨率相同的图片分辨率,但我想要手机相机的分辨率。

欢迎任何相关答案,在此先感谢。

4

4 回答 4

1

怎么样getSupportedPictureSizes()

于 2013-06-20T04:52:48.487 回答
1

首先找到高度和宽度,如下所示:

android.hardware.Camera.Parameters parameters = camera.getParameters();
android.hardware.Camera.Size size = parameters.getPictureSize();


int height = size.height;
int width = size.width;

然后使用以下等式获得百万像素:

int mg = height * width / 1024000;

其中 mg 是您的百万像素。

于 2013-06-20T04:52:52.777 回答
0

首先使用.检查相机可用的支持图片尺寸Camera.Parameters。相机参数中有一个函数调用getSupportedPictureSizes()

例如:

List<Camera.Size> mList    =    mParams.getSupportedPictureSizes();
Camera.Size mSize          =    mList.get(mList.size() - 1);

从 mList 中,您可以获得所有支持的图片尺寸。列表中的最后一个将是可能的最大分辨率。

于 2013-06-20T04:56:00.717 回答
0

试试这里的代码。它以 mp 为单位返回后置摄像头的分辨率。您应该使用 getSupportedPictureSize 而不是 getPictureSize

https://stackoverflow.com/a/27000029/1554031

于 2014-11-18T17:58:06.803 回答