una tamaño studio redimensionar mas imagenes imagen hacer grande comprimir como cambiar ajustar android bitmap decode decoding bitmapfactory

android - tamaño - redimensionar imagen imageview



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

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 2048x2048 píxeles se reduzcan a un máximo de 2048x2048 (manteniendo las proporciones).
Podría hacer esto manualmente después de obtener el mapa de bits, pero eso requeriría asignar una gran cantidad de bytes además de los ya asignados.
¿Cómo debo configurar mi objeto BitmapFactory.Options para obtener ese efecto?
Gracias


Comience estableciendo inJustDecodeBounds en 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, simplemente cárguelo como de costumbre.
Por otro lado, si es demasiado grande, use BitmapFactory.Options.inSampleSize para leer un mapa de bits más pequeño.

Nota: no creo que la decodificación filtre nada al usar inSampleSize, por lo que puede perder algunos detalles, pero como el tamaño de su imagen es tan grande (2048 px), no creo que esto cause 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éjame saber si esto es de alguna ayuda para ti.


Use BitmapFactory.Options.inSampleSize primera vez que cargue su imagen para obtener el tamaño lo más cercano posible a su tamaño objetivo, luego use Bitmap.createScaledBitmap para escalar al tamaño exacto que desea.

Hay un código para esto en esta respuesta .