繁体   English   中英

在Android中以编程方式确定摄像机分辨率(即百万像素)

[英]Determining Camera Resolution (i.e. Megapixels) Programmatically in Android

我正在开发2.2中的Android应用程序,它使用Camera。 现在任何人都可以告诉我“是否有可能以编程方式确定Android中的百万像素的相机分辨率”

如果您有相机对象,请尝试:

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


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

图像分辨率意味着什么?

分辨率是指图像中的像素数。 有时通过图像的宽度和高度以及图像中的像素总数来确定分辨率。 例如,宽2048像素,高1536像素(2048X1536)的图像包含(乘)3,145,728像素(或3.1百万像素)。 您可以将其称为2048X1536或310万像素图像。 随着相机中拾音设备中的百万像素增加,您可以生成的最大尺寸图像也会增加。 这意味着500万像素的摄像头能够拍摄比300万像素摄像头更大的图像。

示例:1936 x 1552/1024000 = 3百万像素

尝试这个

public float getBackCameraResolutionInMp()
{
    int noOfCameras = Camera.getNumberOfCameras();
    float maxResolution = -1;
    long pixelCount = -1;
    for (int i = 0;i < noOfCameras;i++)
    {
        Camera.CameraInfo cameraInfo = new CameraInfo();
        Camera.getCameraInfo(i, cameraInfo);

        if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK)
        {
            Camera camera = Camera.open(i);;
            Camera.Parameters cameraParams = camera.getParameters();
            for (int j = 0;j < cameraParams.getSupportedPictureSizes().size();j++)
            {
                long pixelCountTemp = cameraParams.getSupportedPictureSizes().get(j).width * cameraParams.getSupportedPictureSizes().get(j).height; // Just changed i to j in this loop
                if (pixelCountTemp > pixelCount)
                {
                    pixelCount = pixelCountTemp;
                    maxResolution = ((float)pixelCountTemp) / (1024000.0f);
                }
            }

            camera.release();
        }
    }

    return maxResolution;
}

在android清单中添加此权限

<uses-permission android:name="android.permission.CAMERA" />

是的,这样对我有用。 还有一点需要注意,getPictureSize()将返回一个支持大小的列表,其中包含不同的高度和宽度。 要计算设备相机的像素分辨率,请从尺寸列表中获取最大高度和宽度。

您可以通过此方式获取支持的尺寸列表。 getSupportedSizes()

最高尺寸会以像素为单位提供相机重新分配。

编辑:以防你不知道。

像素的分辨率=宽度X高度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM