2017-10-19 23 views
0

Selon cette réponse here, il est possible de lire une image height et width sans charger l'image entière en mémoire.Obtenir la taille du fichier image à partir des valeurs de hauteur et de largeur

Il y a un peu de peine plus loin dans la réponse disant que

bitmap d'environ 512x384. Chargement en mémoire utilise 0,75 Mo plutôt que 12 Mo pour l'image complète (en supposant une configuration bitmap de ARGB_8888).

Ma question est de savoir comment vous pouvez calculer la taille du fichier d'image (ou je dois dire que peut-être l'utilisation de la mémoire) de l'image en utilisant la height et width comme dans la réponse ci-dessus. Aussi, quelle est cette valeur ARGB_8888 ou comment l'obtenir?

Répondre

3
ARGB_8888 is a way of storing information about the pixels. 

En se référant aux docsARGB_8888 stocke chaque pixel sur 4 octets.

Pour calculer la taille totale possible de l'image, par exemple l'exemple 512x384 que vous utilisiez, nous obtenons ce qui suit.

512 x 384 = 196608 pixels.

Et nous savons que chaque pixel est stocké sur 4 octets. Ainsi, la taille totale en octets sera 196608 x 4 = 786432 octets. De là, nous allons et divisons par 1024, voir here, pour chaque étape jusqu'à l'échelle kB, MB, GB, TB que nous voulons aller. Donc, pour obtenir la taille MB pour l'image, nous avons 786432/(1024x1024) = 0,75.

Espérons que cela répond à votre question

+0

oui exactement ce que je cherchais, merci man! – codeKiller

+1

Plaisir. S'il vous plaît marquez comme la bonne réponse. Bonne journée. –