Skia Decoder не может декодировать удаленный поток

Я пытаюсь открыть удаленный поток изображения JPEG и преобразовать его в объект Bitmap:

BitmapFactory.decodeStream( new URL("http://some.url.to/source/image.jpg") .openStream()); 

Декодер возвращает значение null, а в журналах появляется следующее сообщение:

 DEBUG/skia(xxxx): --- decoder->decode returned false 

Заметка:
1. длина контента не равна нулю, а тип содержимого – image/jpeg
2. Когда я открываю URL-адрес в браузере, я вижу изображение.

Что мне здесь не хватает?

Пожалуйста помоги. Благодарю.

Solutions Collecting From Web of "Skia Decoder не может декодировать удаленный поток"

Решение, предоставленное в андроидной ошибке № 6066, состоит в переопределении std FilterInputStream и последующей отправке в BitmapFactory.

 static class FlushedInputStream extends FilterInputStream { public FlushedInputStream(InputStream inputStream) { super(inputStream); } @Override public long skip(long n) throws IOException { long totalBytesSkipped = 0L; while (totalBytesSkipped < n) { long bytesSkipped = in.skip(n - totalBytesSkipped); if (bytesSkipped == 0L) { int byteValue = read(); if (byteValue < 0) { break; // we reached EOF } else { bytesSkipped = 1; // we read one byte } } totalBytesSkipped += bytesSkipped; } return totalBytesSkipped; } } 

А затем используйте функцию decodeStream:

 Bitmap bitmap = BitmapFactory.decodeStream(new FlushedInputStream(inputStream)); 

Другое решение, которое я нашел, – просто дать BufferedInputStream для BitmapFactory:

 Bitmap bitmap = BitmapFactory.decodeStream(new BufferedInputStream(inputStream)); 

Эти два решения должны сделать трюк.

Более подробную информацию можно найти в комментариях к сообщениям об ошибках: ошибка Android no.6066

Кажется, что была какая-то проблема с потоком, и как обратился к нему андроид; Патч в этом отчете об ошибке решил проблему на данный момент.

Для меня проблема связана с типом цвета изображения: ваше изображение в цвете = CYMK не в RGB