我在SD卡上有一张2448x3264像素的图片,它占用了1,667,072字节的空间。但是当我将其加载为位图并使用getRowBytes()*getHeight()
计算大小时,结果却是15,980,544字节。
为什么会这样,并且如何计算文件的实际大小?
我在SD卡上有一张2448x3264像素的图片,它占用了1,667,072字节的空间。但是当我将其加载为位图并使用getRowBytes()*getHeight()
计算大小时,结果却是15,980,544字节。
为什么会这样,并且如何计算文件的实际大小?
这是因为在存储到磁盘上(以JPG、PNG或类似格式存储)时图像会被压缩。一旦将图像加载到内存中,它就不再被压缩,并且需要为所有像素占用尽可能多的内存空间(通常是RGBA_8888为宽度x高度x4,RGB_565为宽度x高度x2)。