Преобразование входного потока в растровое изображение - PullRequest
40 голосов
/ 07 июля 2011

У меня проблемы с преобразованием входного потока из Интернета в растровое изображение.Проблема возникает только тогда, когда тип входного изображения .BMP (растровое изображение).В этом случае: bitmapFactory.decodeStream возвращает ноль .

Любые советы, как решить эту проблему или где мне следует продолжить отладку?

Платформа: Android (Honeycomb)

URLConnection conn = url.openConnection();
conn.connect();

inputStream = conn.getInputStream();

bufferedInputStream = new BufferedInputStream(inputStream);

bmp = BitmapFactory.decodeStream(bufferedInputStream);

1 Ответ

57 голосов
/ 08 июля 2011

Спасибо @Amir за указание на журнал.Обнаружена строка:

decoder->decode returned false

Кажется, это общая проблема.Делая поиск, я нашел решение.

Мой предыдущий код:

URLConnection conn = url.openConnection();
conn.connect();

inputStream = conn.getInputStream();

bufferedInputStream = new BufferedInputStream(inputStream);

bmp = BitmapFactory.decodeStream(bufferedInputStream);

Код, который работает:

HttpGet httpRequest = null;

try {
    httpRequest = new HttpGet(url.toURI());
} catch (URISyntaxException e) {
    e.printStackTrace();
}

HttpClient httpclient = new DefaultHttpClient();

HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);

HttpEntity entity = response.getEntity();

BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);

InputStream instream = bufHttpEntity.getContent();

bmp = BitmapFactory.decodeStream(instream);

Источник

...