Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
The moose likes Android and the fly likes load a jpg image from bytearray Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Mobile » Android
Bookmark "load a jpg image from bytearray" Watch "load a jpg image from bytearray" New topic
Author

load a jpg image from bytearray

swapna nyathani
Greenhorn

Joined: Mar 16, 2006
Posts: 21
Hi,


I am trying to load a png image file from a byte array(from stream) and got this error :

01-09 12:01:24.664: E/AndroidRuntime(14031): java.lang.OutOfMemoryError
01-09 12:01:24.664: E/AndroidRuntime(14031): at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:91)
01-09 12:01:24.664: E/AndroidRuntime(14031): at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)


My code is :
ByteArrayOutputStream out = new ByteArrayOutputStream(ByteWritten);
byte[] actual_bytes = new byte[1024];
long count = 1024;
long off = 0;

while((actual_bytes = solstream.readWithSeek(off,count))!=null) // this is virtual space stream where the image file is stored
{
off=off+actual_bytes.length;
out.write(actual_bytes,0,actual_bytes.length);
}

out.flush();
out.close();

byte[] final_ba = out.toByteArray();

bitmap = BitmapFactory.decodeByteArray(final_ba,0,final_ba.length);


image = (ImageView) findViewById(R.id.rtimageView);
image.setImageBitmap(bitmap);



Thanks in advance.
Swapna.

swapna
Ulf Dittmer
Rancher

Joined: Mar 22, 2005
Posts: 42958
    
  73
How big is the image? Does the exception occur during the toByteArray() call?
swapna nyathani
Greenhorn

Joined: Mar 16, 2006
Posts: 21
Hi,

Image details:

Dimensions: 250*158
Horizontal resolution: 72 dpi
Horizontal resolution: 72 dpi

size on disk: 24 kb


Exception occurs at this line
"out.write(actual_bytes,0,actual_bytes.length); "


Swapna.

Ulf Dittmer
Rancher

Joined: Mar 22, 2005
Posts: 42958
    
  73
That's a small image. Have your tried adding up and logging the number of bytes you're reading from the image (in effect logging the value of "off" at each loop iteration)? After how many bytes does the OOME occur?
swapna nyathani
Greenhorn

Joined: Mar 16, 2006
Posts: 21
Hi,

01-10 06:36:21.008: E/dalvikvm-heap(1386): Out of memory on a 25133072-byte allocation.





 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: load a jpg image from bytearray
 
jQuery in Action, 3rd edition