2014-08-30 4 views
1

Возможно ли уменьшить разрешение изображения при сохранении исходной ширины и высоты?Уменьшение разрешения изображения в Android

Я попробовал несколько вариантов использования BitmapFactoryOptions:

  1. inSampleSize
  2. inDensity, inScaled, inTargetDensity

Оба способа уменьшить ширину и высоту изображения. Но я хочу просто уменьшить разрешение изображения, не влияя на ширину и высоту изображения.

ответ

1

Определение «разрешение» - это «ширина и высота». Следовательно, вы не можете изменить разрешение без изменения ширины и высоты.


Изображение снимается с андроид камеры устройства. Я использую BitmapFactory для изменения размера изображения на onActivityResult.

Независимо от того, можете ли вы что-либо сделать, чтобы уменьшить размер файла, в дальнейшем многое зависит от того, что делает приложение камеры, и есть сотни, возможно, тысяч приложений для камер.

Вы можете экспериментировать с:

  • Сохранение JPEG на более низкое качество, когда вы пишете его, using compress()

  • Уменьшение битовую глубину, когда вы читаете его, using inPreferredConfig и RGB_565

  • Поиск других алгоритмов оптимизации JPEG и попытка заставить их работать на Android, возможно, с использованием NDK

+0

Как facebook андроид приложение сможет уменьшить размер изображения, сохраняя при этом ширину и высоту? Или, как я должен уменьшить размер изображения, не влияя на ширину и высоту? – WenHao

+1

@ user970307: Что вы подразумеваете под «размером изображения»? Количество байтов на диске? Количество байтов кучного пространства? Видимый визуальный размер для пользователя? Длина имени файла изображения? Если вы не объясните ** точно **, что вы подразумеваете под «размером изображения», вам будет очень сложно помочь вам. – CommonsWare

+0

Размер изображения - это размер файла этого изображения. – WenHao

0

Я думаю, что вы не совсем поняли с самим определением резолюции.

Возможно, вы хотите уменьшить разрешение изображения (ширина и высота), а затем показать его в ImageView большего размера.

Для этого необходимо просто установить пониженную разрешение изображения в качестве источника любого большего размера ImageView с Scaling (ScaleType) набор Протянуть

Смежные вопросы