32

Tengo problemas para convertir un flujo de entrada de la web en mapa de bits. El problema ocurre solo cuando el tipo de imagen de entrada es .BMP (mapa de bits). En ese caso: bitmapFactory.decodeStream devuelve nulo.Conversión de flujo de entrada en mapa de bits

¿Alguna sugerencia sobre cómo solucionar este problema o dónde debo continuar con la depuración?

Plataforma: Android (Honeycomb)

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

inputStream = conn.getInputStream(); 

bufferedInputStream = new BufferedInputStream(inputStream); 

bmp = BitmapFactory.decodeStream(bufferedInputStream); 
+1

¿Hay algún error de registro que puede ayudar? –

Respuesta

41

Gracias @Amir de punto a cabo el registro. Descubrió una línea:

decoder->decode returned false 

Esto parece ser un problema común. Haciendo una búsqueda encontré una solución.

Mi código anterior:

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

inputStream = conn.getInputStream(); 

bufferedInputStream = new BufferedInputStream(inputStream); 

bmp = BitmapFactory.decodeStream(bufferedInputStream); 

Código que está trabajando:

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

Source

+0

¿Qué servicio usas? –

+0

Uso WCF Service y cuando envío byte [] de imagen y uso su método para convertir de nuevo a imagen de mapa de bits, pero BitmapFactory.decodeStream (instream) siempre es nulo. –

Cuestiones relacionadas