Aprendí de un poste de desbordamiento de pila que la memoria requerida para mostrar una imagen y el tamaño de la imagen es igual a
4 * image dimensions
Tengo algunas imágenes de 800x800 y veo que su tamaño es de aproximadamente cien KB, lo que creo que es bastante pequeño. Pero de acuerdo con la fórmula anterior, se necesitan más de 2 MB para mostrarlo.
La publicación SO dice que debido a que el mapa de bits utiliza colores ARGB, cada píxel requiere 4 bytes de espacio de almacenamiento. Por eso la fórmula es 4 * Dimensiones de la imagen. ¡Pero veo que solo se requieren 100 KB de espacio para almacenar la imagen!
¿La computadora usa un método diferente para almacenar la imagen? ¿1 píxel todavía necesita 4B para ser almacenado? ¿Cómo está pasando esto?
memory
memory-usage
Sweeper
fuente
fuente
View
s, añadiendo transparencia ralentizará las cosas.Respuestas:
IrfanView Puede ayudar a ver rápidamente la memoria utilizada:
(ver el cálculo de la memoria)
ANCHURA X ALTURA X (BITS POR PIXEL) = memoria necesaria para cargar la imagen completa
¡Aclamaciones!
fuente
Tu imagen está comprimida (por ejemplo, con
jpeg
opng
). Si almacena la imagen en un formato no comprimido (tiff
sinzip
compresión) obtendría ese tamaño en el disco, también.fuente
with compression
La memoria requerida para almacenar una imagen puede ser menor que la memoria requerida para mostrarla. Por ejemplo, si la imagen es un rectángulo verde de 80x80, puede almacenarla como el equivalente de "80 por 80 rectángulo verde". Pero para mostrarlo, necesitas 1600 puntos verdes, cada uno de los cuales va a ocupar algo de espacio.
fuente