I encountered a similar error when trying to decode a buffered input
stream from a web server using BitmapFactory. We identified this as a
bug that will be fixed in the next version. Here is a workaround you
can use:
Bitmap bitmap = null;
InputStream in = null;
OutputStream out = null;
try {
in = new BufferedInputStream(new
URL("http://blah.com/foo/bar.jpg").openStream(),
IO_BUFFER_SIZE);
final ByteArrayOutputStream dataStream = new
ByteArrayOutputStream();
out = new BufferedOutputStream(dataStream, 4 * 1024);
copy(in, out);
out.flush();
final byte[] data = dataStream.toByteArray();
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
} catch (IOException e) {
android.util.Log.e("IO", "Could not load buddy icon: "
+ this, e);
} finally {
closeStream(in);
closeStream(out);
}
And to make it work you will need the following two methods:
/**
* Copy the content of the input stream into the output stream,
using a temporary
* byte array buffer whose size is defined by [EMAIL PROTECTED]
#IO_BUFFER_SIZE}.
*
* @param in The input stream to copy from.
* @param out The output stream to copy to.
*
* @throws IOException If any error occurs during the copy.
*/
private static void copy(InputStream in, OutputStream out) throws
IOException {
byte[] b = new byte[4 * 1024];
int read;
while ((read = in.read(b)) != -1) {
out.write(b, 0, read);
}
}
/**
* Closes the specified stream.
*
* @param stream The stream to close.
*/
private static void closeStream(Closeable stream) {
if (stream != null) {
try {
stream.close();
} catch (IOException e) {
android.util.Log.e("IO", "Could not close stream", e);
}
}
}
On Thu, Oct 2, 2008 at 8:26 AM, Nemat <[EMAIL PROTECTED]> wrote:
>
> I have applied the way given in link.I think the problem is in
> displaying the image??
> Do u know the reason behind this JPEG error???
>
> On Oct 1, 7:07 pm, Mark Hansen <[EMAIL PROTECTED]> wrote:
>> I followed this short tutorial a while back for downloading an image
>> via http, maybe it can point you in the right direction...
>>
>> http://www.anddev.org/gallery_with_remote_images-t769.html
>>
>> On Oct 1, 6:51 am, Nemat <[EMAIL PROTECTED]> wrote:
>>
>> > Hi,
>>
>> > I have to download an image from server.But I got an error "D/skia
>> > ( 197): xxxxxxxxxxx jpeg error 53 Not a JPEG file: starts with 0x%02x
>> > 0x%02x"
>>
>> > I have to perform two continues Http connection.First is used to get
>> > server response and second to get image from the server.First task is
>> > performed correctly but while downloading image I got the given
>> > eror.So the problem in getting image from server.
>>
>> > My code is:
>> > Code:
>>
>> > public ImageView getView(String myImageURL) {
>> > Log.i("TAG","downloadFile000000000000000000"+myImageURL);
>> > ImageView i = new ImageView(this);
>>
>> > try {
>> > /* Open a new URL and get the InputStream to load data
>> > from it. */
>> > URL aURL = new URL(myImageURL);
>> > URLConnection conn = aURL.openConnection();
>>
>> > Log.i("TAG","downloadFile1111111111111111111"+myImageURL);
>> > conn.connect();
>> > InputStream is = conn.getInputStream();
>>
>> > Log.i("TAG","downloadFile2222222222222222222222"+is.read());
>> > /* Buffered is always good for a performance plus. */
>> > BufferedInputStream bis = new BufferedInputStream(is);
>>
>> > Log.i("TAG","downloadFile33333333333333333333="+bis.read());
>> > /* Decode url-data to a bitmap. */
>> > // Bitmap bm = BitmapFactory.decodeStream(bis);
>> > Bitmap bm = BitmapFactory.decodeStream(is);
>> > //
>> > Log.i("TAG","downloadFile4444444444444444444"+bm.getHeight());
>> > // bis.close();
>> > is.close();
>> > /* Apply the Bitmap to the ImageView that will be
>> > returned. */
>> > i.setImageBitmap(bm);
>> > Log.i("TAG","downloadFile555555555555555555555");
>> > } catch (IOException e) {
>> > Log.i("TAG","downloadFile666666666666666666666666");
>> > Log.e("DEBUGTAG", "Remtoe Image Exception", e);
>> > }
>>
>> > /* Image should be scaled as width/height are set. */
>> > // i.setScaleType(ImageView.ScaleType.FIT_CENTER);
>> > /* Set the Width/Height of the ImageView. */
>>
>> > return i;
>> > }
>>
>> > This code works fine when I performed this task alone in another
>> > project.
> >
>
--
Romain Guy
www.curious-creature.org
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---