2013-06-20 51 views
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); 

但这仅返回画面分辨率是一样的手机的屏幕分辨率,但我想移动摄像机的分辨率。

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

+0

检查http://stackoverflow.com/questions/6952469/determining-camera-resolution-ie-megapixels-programatically-in-android – 2013-06-20 04:42:58

+0

我尝试过,我有也发布了代码。它没有工作。 – VIGNESH

+0

你的意思是百万像素。 – Riser

回答

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; 

哪里毫克是你的万像素。

+0

这将返回屏幕分辨率/百万像素而不是移动相机。我检查了它。 – VIGNESH

0

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

对于e.g:

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

从mList你会得到所有支持的图片尺寸。列表中的最后一个将是最大可能的解决方案。