MediaStore.Images.Media.getBitmap(getActivity().getContentResolver() всегда поворачивает вертикальное изображение в гориJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 MediaStore.Images.Media.getBitmap(getActivity().getContentResolver() всегда поворачивает вертикальное изображение в гори

Сообщение Anonymous »

В моем приложении я просто пытаюсь выбрать несколько изображений из галереи и показать их в recyclerview перед загрузкой на сервер. В recyclerview изображения отображаются в исходной ориентации. Однако перед загрузкой на сервер все вертикальные изображения всегда поворачиваются на 90 градусов, преобразуя вертикальное изображение (ширина * высота = 720 * 1280) в горизонтальный (ширина * высота = 1280 * 720) формат. Я не хочу, чтобы мои вертикальные изображения вообще меняли ориентацию. Я проверил весь свой код и могу сделать вывод, что приведенный ниже код каким-то образом выполняет вращение.

Код: Выделить всё

  for (int i = 0; i < current_count; i++) {
index = i;
try {
assert getActivity() != null;
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uris.get(i));

int width = bitmap.getWidth();
int height = bitmap.getHeight();

Log.d("Logs", "--width, height-" + width + "-" + height + "--");

converetdBitmap = getResizedBitmap(bitmap, 1280);
uploadImagesToDatabase(i, converetdBitmap, current_count);

} catch (IOException e) {

}
}

Код: Выделить всё

    public Bitmap getResizedBitmap(Bitmap image, int maxSize) {
int width = image.getWidth();
int height = image.getHeight();

Log.d("Logs", "--width, height-" + width + "-" + height + "--");

float bitmapRatio = (float) width / (float) height;
if (bitmapRatio > 1) {
width = maxSize;
height = (int) (width / bitmapRatio);
} else {
height = maxSize;
width = (int) (height * bitmapRatio);
}

Log.d("logs", "-- width, height-" + width + "-" + height + "--");
return Bitmap.createScaledBitmap(image, width, height, true);
}
В выводе Log.d("Logs....) - всегда получается 1280 * 720, в то время как исходное изображение имеет размер 720 * 1280. Следовательно, в моем коде функции нет проблем. getResizedBitmap(). Кажется, виновата эта команда -
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uris.get(i));
Пожалуйста помогите мне в этом. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... lways-rota
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»