32

Tôi gặp sự cố khi chuyển đổi luồng đầu vào từ web thành bitmap. Sự cố chỉ xảy ra khi loại hình ảnh đầu vào là .BMP (bitmap). Trong trường hợp đó: bitmapFactory.decodeStream trả về null.Chuyển đổi luồng đầu vào thành bitmap

Bất kỳ gợi ý nào về cách khắc phục sự cố này hoặc tôi nên tiếp tục gỡ lỗi ở đâu?

Hệ điều hành: Android (Honeycomb)

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

inputStream = conn.getInputStream(); 

bufferedInputStream = new BufferedInputStream(inputStream); 

bmp = BitmapFactory.decodeStream(bufferedInputStream); 
+1

Có bất kỳ lỗi log hơn có thể giúp đỡ? –

Trả lời

41

Cảm ơn bạn @Amir cho điểm ra nhật ký. Đã khám phá một dòng:

decoder->decode returned false 

Điều này có vẻ là vấn đề thường gặp. Thực hiện tìm kiếm tôi tìm thấy một giải pháp.

mã trước đó của tôi:

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

inputStream = conn.getInputStream(); 

bufferedInputStream = new BufferedInputStream(inputStream); 

bmp = BitmapFactory.decodeStream(bufferedInputStream); 

Mã mà là làm việc:

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

Bạn sử dụng dịch vụ nào? –

+0

Tôi sử dụng dịch vụ WCF và khi tôi gửi byte [] của hình ảnh và sử dụng phương pháp của bạn để chuyển đổi trở lại hình ảnh bitmap, nhưng BitmapFactory.decodeStream (instream) luôn luôn là null !! –

Các vấn đề liên quan