Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 243
#1

Изменение размера изображения (байты) - Android

19.04.2013, 21:21. Просмотров 1230. Ответов 5
Метки нет (Все метки)

Здравствуйте.
Возник вопрос о том, как можно сжать полученное от камеры фото. В смысле не по ширине/высоте, а по "массе" так сказать. То есть например фотография на входе весит 2 МБ, а на выходе, например, не более 200 кБ.
Использовал вот такой вариант:

Java
1
2
3
4
5
6
7
8
9
 fff - файл
BitmapFactory.Options options = new BitmapFactory.Options();
if(fff.length()>200000){
    options.inSampleSize=Math.round(fff.length()/200000);
}else{
    options.inSampleSize=1;
}
options.inPurgeable = true;
Bitmap mini1=BitmapFactory.decodeFile(fff.toString(), options);
Но в результате получается какая то белеберда. Иногда на выходе фотки очень маленькие получается. Возможно из-за того, что на входе размеры файлов неодинаковые и округление бывает то в большую, то в меньшую сторону и потому на выходе могу иметь файл и 180 кБ и 80 кБ.
Вот как можно строго задать, что если больше 200кБ, то убавь до 200 кБ, если меньше, то не трогай?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 21:21     Изменение размера изображения (байты)
Посмотрите здесь:

Изменение размера изображения Android
Android Конвертер - байты в биты
Изменение размера шрифта в стиле программно Android
Какого размера делать приложение? Android
Android Изменение размера картинок в зависимости от разрешения экрана
Android Изменение размера Activity
Изменить байты файла Android
Диначеское изменение вышины компонента (размера шрифта) Android
ImageView большого размера Android
автоматическое изменение размера шрифта Android
Android Изменение размера W и H в layout
Изменение размера текста кнопки вместе с размером самой кнопки? Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 21:32     Изменение размера изображения (байты) #2
на первый взгляд все правильно, подебагайте.

Добавлено через 2 минуты
Цитата Сообщение от JIyrApy Посмотреть сообщение
округление бывает то в большую
скорее всего так и есть, не думаю что можно задать желательный размер в байтах.
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 243
19.04.2013, 23:56  [ТС]     Изменение размера изображения (байты) #3
А тогда такой вопросы:
1) options.inSampleSize - обязательно должен равняться 1,2,4,8,16,32,... или любой целое число?
2)И как, кстати, можно пошагово прогонять код программы в эклипсе?

Добавлено через 5 минут
3)И если брать не round, а, например отбрасывание дробной части, Math.ceil(n)-1?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
20.04.2013, 00:00     Изменение размера изображения (байты) #4
Цитата Сообщение от JIyrApy Посмотреть сообщение
1) options.inSampleSize - обязательно должен равняться 1,2,4,8,16,32,... или любой целое число?
любой целое число насколько я знаю.

Цитата Сообщение от JIyrApy Посмотреть сообщение
И как, кстати, можно пошагово прогонять код программы в эклипсе?
слева от кнопки Старт есть кнопка Дебаг. Ну и брейкпоинты слева от кода ставятся двойным кликом.


Цитата Сообщение от JIyrApy Посмотреть сообщение
И если брать не round, а, например отбрасывание дробной части, Math.ceil(n)-1?
попробуйте.
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
20.04.2013, 01:50     Изменение размера изображения (байты) #5
JIyrApy,

Обрати внимание на методы calculateInSampleSize и decodeSampledBitmapFromResource
http://developer.android.com/trainin...-graphics.html
JIyrApy
32 / 32 / 1
Регистрация: 22.08.2010
Сообщений: 243
20.04.2013, 11:23  [ТС]     Изменение размера изображения (байты) #6
calculateInSampleSize - отлично) Блин, все гениальное - просто. А размер файла (в смысле "массу") можно регулировать дальнейшим compress для Bitmap-объекта (типа настройки прописать). Получается шикаааарно) Всем спасибо!
Yandex
Объявления
20.04.2013, 11:23     Изменение размера изображения (байты)
Ответ Создать тему
Опции темы

Текущее время: 15:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru