【问题标题】:Get image file size from height and width values从高度和宽度值获取图像文件大小
【发布时间】:2017-10-19 16:41:32
【问题描述】:
根据here这个答案,可以在不将整个图像加载到内存的情况下读取图像height和width。
答案后面有一句话说明了这一点
大约 512x384 的位图。将此加载到内存中使用 0.75MB
而不是 12MB 的完整图像(假设位图配置
ARGB_8888)。
我的问题是如何使用height 和width 计算图像的图像文件大小(或者我必须说内存使用量),就像上面的答案一样。另外,这个ARGB_8888 值是什么或如何获取它?
【问题讨论】:
标签:
android
image
out-of-memory
size
【解决方案1】:
ARGB_8888 is a way of storing information about the pixels.
参考docs ARGB_8888 将每个像素存储在 4 个字节上。
要计算图像的总可能大小,比如说您使用的 512x384 示例,我们会得到以下结果。
512 x 384 = 196608 像素。
我们知道每个像素存储在 4 个字节上。因此,以字节为单位的总大小将为 196608 x 4 = 786432 字节。
从这里我们开始除以 1024,请参阅here,对于我们想要达到的 kB、MB、GB、TB 阶梯的每一步。因此,要获得图像的 MB 大小,我们需要 786432/(1024x1024) = 0.75。
希望这能回答你的问题