Я создаю приложение, которое отображает множество изображений, созданных из PDF-файлов Imagemagick. Некоторые изображения не могут быть загружены с помощью BitmapFactory. Он просто возвращает null istead растрового изображения.Невозможно загрузить JPEG-изображение с помощью BitmapFactory.decodeFile. Возвращает null
Журнал говорит:
D/skia(15101): --- decoder->decode returned false
Это не проблема памяти, как некоторые из изображений с проблемой очень мало, и образы не повреждены, потому что я могу показать их на любой другой машине , Кроме того, BitmapFactory может декодировать ширину и высоту, если я использую
inJustDecodeBounds = true;
в вариантах.
Я пытался загрузить одно из изображений с помощью внешнего средства просмотра изображений (QuickPic) без везения. Он также возвращает «Ошибка загрузки», что указывает на то, что SKIA считает, что изображение повреждено или по крайней мере не поддерживается по какой-либо причине.
Одно из изображений, которые не работают, можно найти here
Полный код я использую, чтобы загрузить его здесь
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeFile(FILENAME,o);
int width = o.outWidth;
int height = o.outHeight;
/* Width and height decoded successfuly */
BitmapFactory.Options o2 = new BitmapFactory.Options();
o.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(FILENAME,o2);
/*Bitmap is null */
Любая идея, что не так и как это можно обойти это Добро пожаловать.
может у опубликовать код создания FILENAME? – dor506
FILENAME - это просто константа, ссылающаяся на конкретный файл изображения. В моем случае он определяется как «конечная статическая строка FILENAME =« /sdcard/MPSIT.jpg »; – Niels