views:

42

answers:

1

Hi there!

I'm building an android app and I'm currently having trouble retrieving a bitmap from an URL. Here is the code I'm using :

public static Bitmap bmpFromURL(URL imageURL){

    Bitmap result = null;

    try {

        HttpURLConnection connection = (HttpURLConnection)imageURL .openConnection();

        connection.setDoInput(true);

        connection.connect();

        InputStream input = connection.getInputStream();

        result = BitmapFactory.decodeStream(input);


    } catch (IOException e) {


        e.printStackTrace();

    }

    return result;

}

Everything works fine when the picture's write but when some bytes are wrong, result gets null. I think it's basically expectable as it's written this in the doc of BitmapFactory.decodeStream :

If the input stream is null, or cannot be used to decode a bitmap, the function returns null. The stream's position will be where ever it was after the encoded data was read.

The problem is, my wrong picture is well interpreted by my web browser and I can do so on iPhone platform.

Is there a way to sort of ignore those wrong pixels? maybe with the option parameter?

Any help appreciated

Romain

+1  A: 

This is a known bug fixed in a future version of Android. You can work around it by first copying the content of the InputStream into a byte[] array and then decoding the byte array itself.

Romain Guy
Ok I'll try this. Thanks
Romain
Have you got some sample code to help me out?
Romain