web-dev-qa-db-ja.com

入力ストリームをビットマップに変換する

入力ストリームをWebからビットマップに変換する際に問題があります。問題は、入力イメージタイプが.BMP(ビットマップ)の場合にのみ発生します。その場合:bitmapFactory.decodeStreamはnullを返します

この問題を解決する方法や、どこでデバッグを続行する必要がありますか?

プラットフォーム:Android(Honeycomb)

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

inputStream = conn.getInputStream();

bufferedInputStream = new BufferedInputStream(inputStream);

bmp = BitmapFactory.decodeStream(bufferedInputStream);
41
Indrek Kõue

@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);

ソース

61
Indrek Kõue