Tamaños de imagen compatibles con la cámara Android

Estoy intentando recuperar los tamaños disponibles de la imagen de la cámara, así que puedo ajustar la cámara a mi resolución preferida de la imagen.

Para recuperar el tamaño de la cámara Android he utilizado el código siguiente:

camera=Camera.open(); Parameters params = camera.getParameters(); List sizes = params.getSupportedPictureSizes(); for (int i=0;i<sizes.size();i++){ Log.i("PictureSize", "Supported Size: " +sizes.get(i)); } 

Esto me da la siguiente salida, que no estoy seguro de cómo traducir en un tamaño.

 "Supported size: android.hardware.Camera$Size@65d4c50" "Supported size: android.hardware.Camera$Size@65d4a70" "Supported size: android.hardware.Camera$Size@3fe4e00" "Supported size: android.hardware.Camera$Size@3fe4cd0" "Supported size: android.hardware.Camera$Size@18f5600" "Supported size: android.hardware.Camera$Size@13f7860" 

Si alguien me podría ayudar a entender la salida que me ayudaría mucho, gracias!

Edit: Terminé solucionando mi problema haciendo lo siguiente:

 camera=Camera.open(); Parameters params = camera.getParameters(); List sizes = params.getSupportedPictureSizes(); Camera.Size result = null; for (int i=0;i<sizes.size();i++){ result = (Size) sizes.get(i); Log.i("PictureSize", "Supported Size. Width: " + result.width + "height : " + result.height); } 

getSupportedPictureSizes() devuelve una List de objetos Camera.Size . Camera.Size tiene miembros de datos de height y width que le indican la altura y el ancho del tamaño de imagen admitido.

Este es un ejemplo de proyecto que utiliza el getSupportedPreviewSizes() para encontrar el tamaño de vista previa con el área más grande que es más pequeña que el tamaño de SurfaceView .

 Camera camera = Camera.open(); Parameters params = camera.getParameters(); List sizes = params.getSupportedPictureSizes(); for (int i=0;i<sizes.size();i++) { Log.i("PictureSize", "Supported Size: " +sizes.get(i).width + "height : " + sizes.get(i).height); } 

Tienes que tomar la altura y el ancho de un objeto de tamaño

He aquí un ejemplo de cómo buscar el tamaño que aprroaching su tamaño máximo (1024 * 768), por ejemplo.

  List<Camera.Size> sizes = parameters.getSupportedPictureSizes(); //searches for good picture quality Camera.Size bestDimens = null; for(Camera.Size dimens : sizes){ if(dimens.width <= 1024 && dimens.height <= 768){ if (bestDimens == null || (dimens.width > bestDimens.width && dimens.height > bestDimens.height)) { bestDimens = dimens; } } } parameters.setPictureSize(bestDimens.width, bestDimens.height); camera.setParameters(parameters); 

Esto es lo que acabé haciendo. Dado que el método params.getSupportedPictureSizes() devuelve una lista de tipo Camera.Size , fue fácil hacer esto:

  List<Camera.Size> sizes = p.getSupportedPictureSizes(); //searches for good picture quality for(Camera.Size dimens : sizes){ if(dimens.width <= 1024 && dimens.height <= 768){ Debug.WriteLine("Width: " + dimens.width + " Height: " + dimens.height); return dimens; } } Debug.WriteLine("Width: " + sizes.get(sizes.size()-1).width + " Height: " + sizes.get(sizes.size()-1).height); //returns the smallest camera size if worst comes to worst return p.getSupportedPictureSizes().get(sizes.size()-1); 

Puede obtener una List<Camera.Size> y recorrerla como cualquier otra lista. Camera.Size objeto Camera.Size tiene una propiedad width y height .

Declarar su List esta manera podría ser mejor que emitir cada elemento de la lista para escribir Camera.Size dentro de un bucle.

En mis dispositivos, si miro a sizes.get(0) , tendrá la resolución más alta mientras que sizes.get( sizes.size()-1 ) tiene el más bajo. No estoy seguro de si esto es cierto en todos los dispositivos, sin embargo. ¿Alguien tiene conocimiento sobre eso?

  • Cómo encender la linterna Android
  • Open failed: ENOENT (No hay tal archivo o directorio) error
  • Asegúrese de que las fotos se guardan con la misma orientación que se tomaron?
  • Cámara Android: diferencia entre PictureCallback, ShutterCallback y PreviewCallback
  • Cómo abrir la cámara en modo retrato utilizando OpenCV en la aplicación Android
  • Android - Vista preliminar de la cámara
  • Cámara frontal tomar captura muy oscuro en android
  • Snooker Aplicación para Android
  • Android: NPE sucede al obtener la imagen de la cámara
  • Cómo transferir texturas de un contexto de OpenGL a otro
  • La cámara no se abre después de conceder el permiso en vista de superficie
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.