Nie można załadować obrazu JPEG za pomocą BitmapFactory.decodeFile. Zwraca wartość null
Tworzę aplikację, która pokazuje wiele obrazów generowanych z plików PDF przez Imagemagick. Niektórych obrazów nie można załadować za pomocą BitmapFactory. Zwraca po prostu pustą istotę mapy bitowej.
Dziennik mówi:
D/skia(15101): --- decoder->decode returned false
Nie jest to problem z pamięcią, ponieważ niektóre obrazy z problemem są bardzo małe, a obrazy nie są uszkodzone, ponieważ mogę je wyświetlać na dowolnym innym komputerze. Dodatkowo BitmapFactory może dekodować szerokość i wysokość, jeśli używam
inJustDecodeBounds = true;
w opcjach.
Próbowałem załadować jeden z obrazów za pomocą zewnętrznej przeglądarki obrazów (QuickPic) bez szczęścia. Zwraca także „Load failed”, co wskazuje, że SKIA uważa, że obraz jest uszkodzony lub przynajmniej nie jest obsługiwany z jakiegoś powodu.
Można znaleźć jeden z obrazów, które nie działajątutaj
Pełny kod, którego używam do załadowania, jest tutaj
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 */
Wszelkie pomysły, co jest nie tak lub jak można je obejść, są mile widziane.