У меня очень большое изображение на моем устройстве (не снимается с камеры устройства) Мне нужно изменить размер изображения перед отправкой на сервер. Так скажите, что это 14mb изначально, и я хочу уменьшить его до 2mb. Я хочу изменить размер изображения без потери качества. Я имею в виду, что сервер позволит масштабировать фотографию. Поэтому я думаю, что значение важна. Кроме того, я не понимаю, как работает inDensity в этом отношении. Кто-нибудь, пожалуйста, объясните, как я могу изменить размер фотографии до 2mb, но сохраните такую высокую плотность, чтобы изображение можно было увеличить с высоким качеством? Или это невозможно.Изменить размер изображения перед отправкой на сервер
Я уже знаю, как изменить размер изображения:
public static Bitmap resizeImage(String file, int reqHeight, int reqWidth) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(file, options);
options.inSampleSize = calculateInSampleSize(options, reqHeight, reqWidth);
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(file, options);
}
Спасибо. Что оно делает? Можете ли вы объяснить, почему это работает? –
Метод compress принимает следующие переменные: compress (формат Bitmap.CompressFormat, int quality, поток OutputStream) После того, как вы сжали bmp, вы можете прикрепить его в теле контента запроса. В вашем случае это было бы необязательно, потому что вам нужен только BMP. – kikettas