Ориентация растрового изображения изменяется, когда я использую bitmap.copy () - PullRequest
0 голосов
/ 28 февраля 2019

Я делаю снимок, сохраняю его в виде файла и отображаю его, как вы видите основной imageView, затем я использую:

val filteredImage = bitmap.copy(Bitmap.Config.ARGB_8888,true)

Я использую эту переменную filteredImage, чтобы применитьфильтр на изображении, поскольку он теперь изменчив.

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

Image From the App

Когда я заменяю растровое изображение основного ImageView на скопированное, я получаю это:

imageImageView's bitmap orientation changed">

1 Ответ

0 голосов
/ 28 февраля 2019

Ваше исходное изображение может иметь данные ориентации Exif, которые теряются в bitmap.copy ().

@Override
public void onPictureTaken(CameraView cameraView, byte[] data) {
            // Find out if the picture needs rotating by looking at its Exif data
            ExifInterface exifInterface = new ExifInterface(new ByteArrayInputStream(data));
            int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, 1);
            int rotationDegrees = 0;
            switch (orientation) {
                case ExifInterface.ORIENTATION_ROTATE_90:
                    rotationDegrees = 90;
                    break;
                case ExifInterface.ORIENTATION_ROTATE_180:
                    rotationDegrees = 180;
                    break;
                case ExifInterface.ORIENTATION_ROTATE_270:
                    rotationDegrees = 270;
                    break;
            }
            // Create and rotate the bitmap by rotationDegrees
}

Подробнее см. В этом разделе: https://stackoverflow.com/a/20480741/1159507

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...