Я читаю изображение из памяти телефона. Помимо прочего, я хочу получить размер (размер в хранилище, а не размеры) этого изображения.
Я знаю, что по этой теме существует много вопросов, таких как:
Какполучить размер изображения в Android?
как проверить размер изображения менее 100 КБ для Android
Есть ли способ получитьразмер хранилища растрового изображения?
...
Но ни один из них не дает мне правильный размер изображения.
Имея imageUri
, я преобразую его в растровое изображение следующим образом:
Bitmap bitmap = MediaStore.Images.Media.getBitmap(activity.getContentResolver(), imageUri);
И затем я пытаюсь:
bitmap.getByteCount()
Для конкретного изображения, котороеЯ знаю, что это 1,20 МБ , строка выше возвращает значение 9216000 . Поскольку он находится в Bytes
, его деление на 1024 *1024* 1034 * вернет 8,78 МБ .
Это явно не соответствует реальному размеру.
Кто-нибудь еще испытывал такую же проблему?
Примечания :
Решения должны учитывать только то, что размер должен быть извлеченот объекта Bitmap
(не File
или чего-то еще ...)
Пробовал с png
и jpg
изображениями