Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.