【问题标题】:Get image file size from height and width values从高度和宽度值获取图像文件大小
【发布时间】:2017-10-19 16:41:32
【问题描述】:

根据here这个答案,可以在不将整个图像加载到内存的情况下读取图像heightwidth

答案后面有一句话说明了这一点

大约 512x384 的位图。将此加载到内存中使用 0.75MB 而不是 12MB 的完整图像(假设位图配置 ARGB_8888)。

我的问题是如何使用heightwidth 计算图像的图像文件大小(或者我必须说内存使用量),就像上面的答案一样。另外,这个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。

    希望这能回答你的问题

    【讨论】:

    • 很高兴。请标记为正确答案。祝你有美好的一天。
    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2014-07-15
    • 2021-05-06
    相关资源
    最近更新 更多