Compresión de imágenes, esas cosas
El formato del archivo y la transmisión no tiene ningún efecto sobre el tamaño de la imagen. En otras palabras, si la tarjeta SD de un teléfono móvil es de 100k, leerla en forma de transmisión también es de 100k. Si la imagen existe en forma de mapa de bits, la memoria aumentará instantáneamente.
Formato de archivo: file.length()
Formulario de secuencia: lee el archivo de imagen en la secuencia de entrada de memoria y ve su número de bytes;
Mapa de bits: bitmap.getByteCount()
Si se va a cargar la imagen, entonces el tamaño de unos pocos m definitivamente no funcionará y debe comprimirse;
Si se va a mostrar la imagen en el dispositivo Android, ImageView eventualmente cargará objetos de mapa de bits, por lo que debe considerar cuánta memoria ocupa un solo objeto de mapa de bits;
Tamaño de la memoria de mapa de bits = largo de la imagen * ancho de la imagen * número de bytes por píxel
Los mapas de bits tienen dos métodos de codificación comunes, ARGB 8888 y RGB-565. El primero tiene 4 bytes por píxel y el segundo tiene 2 bytes. ARGB_8888 se usa más comúnmente.
1080 * 1920 * 4 = 7.9M
Mantiene comprimida la relación de aspecto de la imagen original, pero la imagen se vuelve más pequeña y muestra todo el contenido de la imagen original. Utilice BitmapFactory.options para generar miniaturas configurando la relación de escala a través de opciones;
InSimpleSize (frecuencia de muestreo):
Ventajas: alta eficiencia y velocidad de análisis rápida;
Desventajas: inSimpleSize solo puede ser una potencia de 2 y el tamaño de la imagen no se puede especificar con precisión;
La relación entre el ancho y el alto puede ser diferente. Se pueden crear nuevos mapas de bits mediante el método Bitmap.createBitmap(). Este mapa de bits puede seleccionar una parte de la imagen en lugar de comprimir la imagen completa. Es similar a cargar un avatar en QQ, lo que le permite elegir cualquier modo de escala en la imagen y el control es muy flexible.
Significa que el tamaño y la claridad de la imagen se ven iguales a la imagen original, pero el tamaño se reduce. El principio de alejar es sacrificar otras cosas que no se pueden ver directamente, como la resolución. Se ve igual que la imagen original, pero se distorsionará inmediatamente después de ampliarla, a diferencia de la imagen original que se vuelve clara después de ampliarla.