将输入流转换为位图

Ind*_*õue 41 java multithreading android inputstream android-3.0-honeycomb

我在将输入流从Web转换为位图时遇到问题.仅当输入图像类型为.BMP(位图)时才会出现问题.在这种情况下:bitmapFactory.decodeStream返回null.

任何提示如何解决这个问题或我应该在哪里继续我的调试?

平台:Android(Honeycomb)

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

inputStream = conn.getInputStream();

bufferedInputStream = new BufferedInputStream(inputStream);

bmp = BitmapFactory.decodeStream(bufferedInputStream);
Run Code Online (Sandbox Code Playgroud)

Ind*_*õue 62

谢谢@Amir指出日志.发现一条线:

decoder->decode returned false
Run Code Online (Sandbox Code Playgroud)

这似乎是一个普遍的问题.进行搜索我发现了一个解决方案.

我以前的代码:

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

inputStream = conn.getInputStream();

bufferedInputStream = new BufferedInputStream(inputStream);

bmp = BitmapFactory.decodeStream(bufferedInputStream);
Run Code Online (Sandbox Code Playgroud)

正在运行的代码:

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);
Run Code Online (Sandbox Code Playgroud)

资源


Fav*_*rem 9

这是一行答案

val bitmap = BitmapFactory.decodeStream(inputStream)
Run Code Online (Sandbox Code Playgroud)

返回一个Bitmap