Переворачиваем фото на Kotlin с помощью BitmapFactory
Оказывается, это не так уж и сложно.
Переворачиваем фото
Частая проблема при разработке модуля камеры в приложении на Android это перевернутая фотография, которая возвращается после того как фото было сделано. Многих разработчиков это приводит в ступор, особенно если файл нужно не оставить сохраненным на устройстве, а куда-то отправить (на сервер) или “вставить” в ImageView чтобы показать пользователю.
Это проблема решается очень просто с помощью BitmapFactory и небольшого количества кода. Давайте продемонстрируем пример:
На 70 строке кода мы объявили переменную, которая содержит Camera.PictureCallback. Вы с вероятностью 99% получаете фото таким же способом. Обратный вызов возвращает переменную data первым аргументом (все в этой же строчке), которая представляет из себя byteArray.
Ниже на 71 строке мы загружаем наш массив из байтов (фотографию) в класс BitmapFactory. Таким образом мы создали BitMap из массива байтов.
А с 73 по 75 строчку мы вызываем класс матрицы, переворачиваем ее на 90 градусов и создаем новый BitMap на основе прошлого (где мы фото загрузили) и еще устанавливаем туда матрицу. Теперь в переменной rotatedBitmap хранится перевернутая фотография.
P.S: переменная viewPhoto не важна, это просто ImageView в который я подсовываю картинку, дабы показать пользователю. Результат:
Код с предпоследнего изображения:
Оставьте комментарий