1

According to this answer here, it is possible to read an image height and width without loading the whole image into memory.

There is a sentence bit further down in the answer telling that

bitmap of approximately 512x384. Loading this into memory uses 0.75MB rather than 12MB for the full image (assuming a bitmap configuration of ARGB_8888).

My question is how you can calculate the image file size (or maybe I must say memory usage) of the image using the height and width like in the answer above. Also, what is this ARGB_8888 value or how to get it?

codeKiller
  • 5,493
  • 17
  • 60
  • 115

1 Answers1

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

Referring to the docs ARGB_8888 stores each pixel on 4 bytes.

To calculate the total possible size of the image, say the 512x384 example you were using we get the following.

512 x 384 = 196608 pixels.

And we know each pixel is stored on 4 bytes. Thus the total size in bytes will be 196608 x 4 = 786432 bytes.

From here we go and divide by 1024 , see here, for every step up the kB, MB, GB, TB ladder we want to go. So to get the MB size for the image we have 786432/(1024x1024) = 0.75.

Hope this answers your question

Kobus Pitzer
  • 574
  • 1
  • 4
  • 13