Есть ли способ получить размер хранилища растрового изображения?

В моем приложении я загружаю некоторые изображения и хочу знать, есть ли способ получить размер загруженного растрового изображения. Это простой вопрос, но я не могу найти решение через Google.

вот код для скачивания:

Bitmap b = BitmapFactory.decodeStream((InputStream) new URL(theImageUrl).getContent());

person NotACleverMan    schedule 21.06.2011    source источник


Ответы (3)


Сначала преобразуйте растровое изображение в байт [], затем вы можете получить размер растрового изображения.

Попробуйте использовать следующий код

Bitmap bitmap = your bitmap object
ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
    byte[] imageInByte = stream.toByteArray();
long length = imageInByte.length;
person Sunil Kumar Sahoo    schedule 21.06.2011

Используйте b.getByteCount(); или вы хотите запросить размер с сервера перед загрузкой?

РЕДАКТИРОВАТЬ: этот метод доступен только для уровня API 12.

person Astronaut    schedule 21.06.2011
comment
Это возвращает завышенный размер, а не размер хранилища. - person secureboot; 19.12.2012

person    schedule
comment
Спасибо, но я не использую класс File. Я использую класс Bitmap. Вы рекомендуете преобразовать растровое изображение в файл, а затем сделать это? - person NotACleverMan; 21.06.2011
comment
Зачем вам знать, как я его скачиваю? Я просто использую класс Bitmap. Вы знаете: Bitmap b = new Bitmap(); - person NotACleverMan; 21.06.2011
comment
Поскольку вы сказали, что загружаете файл, размер может быть известен в процедуре загрузки, вы не можете использовать Bitmap для получения размера или вам нужно использовать вышеуказанный метод, и не бойтесь, я не собираюсь украсть ваш код: P - person ingsaurabh; 21.06.2011
comment
Я просто боялся уйти от проблемы. Сейчас я помещаю туда свой код. Спасибо. - person NotACleverMan; 21.06.2011
comment
извините, @NotACleverMan, меня здесь не было, но я думаю, вы получили ответ :D - person PedroAGSantos; 21.06.2011