以编程方式查找Mobile的Camera像素

时间:2013-06-20 04:39:49

标签: android camera image-resizing

我搜索过去两天,但我还没有成功。

我的情况,我想检查相机像素分辨率/百万像素。如果相机的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 个答案:

答案 0 :(得分:1)

答案 1 :(得分: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;

毫克是你的百万像素。

答案 2 :(得分:0)

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

例如:

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

从mList中获得所有支持的图片大小。列表中的最后一个将是最大的解决方案。

答案 3 :(得分:0)

尝试此处的代码。它为后置摄像头返回mp的分辨率。您应该使用getSupportedPictureSizes而不是getPictureSize

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