Determinación de la resolución de la cámara (es decir, megapíxeles) Programatically in Android
Estoy desarrollando una aplicación de Android en 2.2, que utiliza la cámara. Ahora ¿Puede alguien decirme que "es posible determinar mediante programación la resolución de la cámara en megapíxeles en Android"
Cualquier ayuda sería muy apreciable.
- SetPreviewDisplay vs setPreviewTexture
- Android Camera.takePicture ha fallado
- El enfoque automático de la cámara no funciona en el Galaxy S4
- Luz de flash no detectada
- Android - ¿Cómo puedo despertar el teléfono de un sueño duro para tomar una foto?
- Vista previa de la cámara con una imagen transparente arriba
- ¿Hay alguna forma de almacenar la imagen a tamaño completo devuelta de la actividad de la cámara en la memoria interna?
- Vista previa de la cámara en Android - extraño en Samsung Galaxy S
- vista previa de la cámara
- Camera.takePicture () no funciona en mi JB & GB & Froyo teléfonos
- Phonegap (3.0.0) La cámara no tuvo éxito en el primer intento
- Cámara de Android ICS emulador
- Google Maps v2 que centra y que da vuelta a la posición de la cámara para caber dos marcadores
¿Qué significa resolución de imagen?
La resolución se refiere al número de píxeles en una imagen. La resolución se identifica a veces por el ancho y la altura de la imagen, así como el número total de píxeles en la imagen. Por ejemplo, una imagen que tiene 2048 píxeles de ancho y 1536 píxeles de alto (2048 X 1536) contiene (multiplicar) 3,175,728 píxeles (o 3,1 megapíxeles). Se puede llamar una imagen 2048X1536 o 3.1 Megapíxeles. Como los megapíxeles en el dispositivo de captura en su aumento de la cámara también lo hace la imagen de tamaño máximo posible que puede producir. Esto significa que una cámara de 5 megapíxeles es capaz de capturar una imagen más grande que una cámara de 3 megapíxeles.
Ejemplo: 1936 x 1552/1024000 = 3 megapíxeles
Si tienes el objeto de la cámara, intenta:
android.hardware.Camera.Parameters parameters = camera.getParameters(); android.hardware.Camera.Size size = parameters.getPictureSize(); int height = size.height; int width = size.width;
Prueba esto
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; }
Añadir este permiso en el manifiesto android
<uses-permission android:name="android.permission.CAMERA" />
Puedes conseguir esto para obtener la lista de tamaños admitidos. GetSupportedSizes ()
El tamaño más alto le daría la resolución de la cámara en píxeles.
EDIT: Por si no lo sabes.
Resolución en píxel = ancho x altura
Sí, así me funciona. Una nota más aquí, getPictureSize () devolverá una lista de tamaño admitido con diferentes alturas y anchos. Para calcular la resolución en píxeles de la cámara del dispositivo, obtenga la mayor altura y ancho de la lista de tamaños.
- Android Spinner – onItemSelected / setOnItemSelectedListener no se activa
- Disposición relativa de Android alignCenter desde otra vista