Android cómo escalar una imagen con las opciones de BitmapFactory

Quiero decodificar una imagen de la tarjeta SD con BitmapFactory.decodeFile (ruta, opciones).
También quiero que las imágenes que son más grandes que 2048×2048 píxeles a ser reducido a como máximo 2048×2048 (mantener las proporciones).
Podría hacer esto manualmente después de conseguir el mapa de bits, pero que requeriría la asignación de una gran cantidad de bytes, además de los ya asignados.
¿Cómo debo configurar mi objeto BitmapFactory.Options para obtener ese efecto?
Gracias

3 Solutions collect form web for “Android cómo escalar una imagen con las opciones de BitmapFactory”

Utilice BitmapFactory.Options.inSampleSize cuando cargue su imagen por primera vez para obtener el tamaño lo más cerca posible de su tamaño de destino y, a continuación, utilice Bitmap.createScaledBitmap para escalar al tamaño exacto que desee.

Hay algo de código para esto en esta respuesta .

Comience configurando inJustDecodeBounds como true en sus Options , esto le dará el tamaño de la imagen, sin cargar ninguno de los datos de la imagen.
Si el tamaño de la imagen es más pequeño que su tamaño máximo, entonces simplemente cargarlo como de costumbre.
Si, por otro lado, es demasiado grande, utilice el inSampleSize para leer un mapa de bits más pequeño.

Nota: No creo que la decodificación haga ningún filtrado al usar el inSampleSize, por lo que podría perder algún detalle, pero como su tamaño de imagen es tan grande (2048 px) no creo que esto causará ningún problema.

Puedes probar algo como esto:

 int imageWidth, imageHeight; Bitmap result = Bitmap.createScaledBitmap(bitmapPicture, imageWidth, imageHeight, false); 

Aquí puede agregar su propio ancho y altura. bitmapPicture es el objeto de Bitmap . Déjeme saber si esto es de alguna ayuda para usted.

  • Cómo establecer el tamaño del mapa de bits en ZXing?
  • Cómo recortar mapa de bits con una ruta de acceso
  • Rotar un mapa de bits guardado en android
  • Error de OutOfMemory del cargador de imágenes universal
  • Android código de bits de código nativo - problema de enlace
  • El tamaño del mapa de bits supera el error de presupuesto de Vm android
  • Android SkImageDecoder :: Factory devuelto null Error
  • Utilice MediaCodec y MediaExtractor para decodificar y codificar vídeo
  • Sustitución de un color en un mapa de bits
  • ¿Puedo crear Bitmaps con el Android NDK en C ++ y pasarlos a Java muy rápido?
  • Android NDK y renderizado para vivir fondos de pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.