2016-06-01 11 views
2

У меня есть модуль загрузки изображений в моем приложении, где пользователь может выбрать изображение из галереи. Проблема в том, что размер изображения может быть до 10 МБ. Что очень большое, я хочу применить некоторые методы сжатия к этим изображениям перед их загрузкой.Сжатие изображения перед загрузкой в ​​android

Я провел некоторое исследование в Интернете и нашел несколько библиотек, таких как ImageMagick, ImgMin, который позволяет легко оптимизировать изображения. Есть ли способ, которым я могу использовать их в своем проекте андроида без участия какого-либо серверного сервера.

Ссылки:

ImgMin https://github.com/rflynn/imgmin

ImageMagick http://www.imagemagick.org/script/index.php

+0

Вы пробовали этот путь: конвертируйте свое изображение в формат Base64. Затем вы получите строку. Если String слишком велика, например, 20 мб разделяет String на части и загружает их. Если вы хотите, я могу дать вам код Base64. –

+0

Я уже использую S3 sdk для загрузки изображений, он автоматически управляет кусками. Проблема заключается в том, что изображения, сделанные с камеры, могут доходить до большого размера и в конечном итоге содержать много бесполезных данных, которые я не хочу. ImgMin (как я уже упоминал выше) использует точный метод, который я хочу реализовать. –

ответ

1

простой вариант, вы можете попробовать это this метод из Bitmap класса.

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

+0

Точно! Преобразование битмапа также приводит к существенным потерям в качестве изображения, которое не подлежит обсуждению с предоставленным им сжатием по размеру. –

+1

@SouravChandra вы можете использовать ImageMin для автономного клиента и предоставить оболочку JNI. Это не очень просто сделать, но я думаю, что это может быть для вас вариант. Другое дело - попробовать интерфейс Java ImageMagick - на странице, которую вы опубликовали, есть ссылка. –

+0

Да, бразильца, я только что обнаружил, что он много работает, чтобы достичь этого. –

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