首页 > 解决方案 > 从位图中获取图像大小(存储大小)

问题描述

我正在从手机存储中读取图像。除其他外,我想获得该图像的大小(存储大小,而不是尺寸)。

我知道关于这个话题有很多问题,比如:

如何在Android中获取图像的大小?

如何检查小于100kb android的图像大小

有没有办法获取位图的存储大小?

...

但是这些都没有给我正确的图像大小。

有了imageUri,我将其转换为位图,如下所示:

Bitmap bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), imageUri);

然后我尝试:

bitmap.getByteCount()

对于特定图像,我知道它是1.20MB,上面的行返回9216000的值。因为它在Bytes,除以1024 * 1024,将返回8.78MB

它显然与实际尺寸不符。

有没有其他人遇到过同样的麻烦?

备注

  1. 解决方案应该只考虑应该从Bitmap对象中提取大小(而不是File其他东西......)

  2. 尝试使用pngjpg图像

标签: androidarraysimagefilebitmap

解决方案


推荐阅读