BitmapFactoryOptions.outWidth и Height возвращают -1

У меня есть файл изображения, снятый камерой.

Путь

/storage/emulated/0/Android/data/com.xxxxxxxxxxxx.yyyyyyyyyyyyy/files/Pictures/yyyyyyyyyyyyyyy_overviewPicture_17417005982933606358.jpg

С File file = new File (pathName) я получаю действительный файл размером около 25 МБ :-)

Код

BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inJustDecodeBounds = true;
BitmapFactory.decodeFile(pathName,bmOptions);
int inSampleSize = Math.min(bmOptions.outWidth/App.PICTURE_WIDTH_MAX,bmOptions.outHeight/App.PICTURE_HEIGHT_MAX);

Я пытаюсь уменьшить значения x и y. Но возвращается только -1 для обоих значений. Любые идеи?

Уровень приложения - 23-28 с целевым 28.

Ошибка декодирования: outHeight will be set to -1 if there is an error trying to decode.developer.android.com/reference/android/graphics/…

TheWanderer 10.09.2018 17:28

Спасибо, верно. Вышеупомянутый размер файла был недоразумением. Я использовал File.getTotalSpace (), и это статический метод класса, не имеющий ничего общего с файлом. С file.length () я получаю 0. С File [] files ... я получаю имя изображения. Bizarr.

Robert 14.09.2018 13:59

Размер файлов изображений был равен 0, поэтому их нельзя было закодировать. Я этого не ожидал. Я рекомендую if (new File (pathName) .length == 0) вернуть false или подобное. Спасибо за чтение / комментарий!

Robert 19.09.2018 13:42
0
3
68
1

Ответы 1

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

    if (new File(pathName).length() == 0) return false

или подобное перед попыткой декодирования. Спасибо за чтение / комментарий!

Другие вопросы по теме