This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Android and the fly likes OutOfMemoryError... Whats the solution? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Mobile » Android
Bookmark "OutOfMemoryError... Whats the solution?" Watch "OutOfMemoryError... Whats the solution?" New topic
Author

OutOfMemoryError... Whats the solution?

Vishal Srivastav
Ranch Hand

Joined: Nov 29, 2008
Posts: 46

Hi friends,

I am developing an application into which I had to capture an image from the camera and send that Image to a web-service for authentication in the form of byte[]. I got stuck with the camera orientation problem as the preview was coming only in landscape mode. Finally when I solved that, I found that the Image captured comes rotated anti-clockwise when clicked in Portrait mode.

So I thought to capture the image, rotate it, and reconvert it to byte[]. But finally when I am trying to convert the Image, I am getting an OutOfMemoryError, Bitmap exceeds VM budget.

Could you please help me to get out of this? How can I solve it? I have tried to free as much references as I could.

Here is the code below...


Here is the code of the method streamToBytes()...


I have attached the error message in 2 image files...

Waiting for help pals...

Thank you.




[Thumbnail for 2.JPG]


[Thumbnail for 1.JPG]


Vishal Srivastava, Software Engineer (Android), Paradigm Creatives
SCJP 5, SCWCD 5 - http://in.linkedin.com/in/srivastavavishal
Adrian Romanelli
Greenhorn

Joined: Oct 20, 2010
Posts: 3
You might take a look at "http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PurgeableBitmapView.html" and specifically how they handle the OutOfMemoryError exception.

Also, "http://developer.android.com/reference/java/lang/ref/SoftReference.html".

Honestly not sure if this will help your particular situation or not, but it seemed informative/worth a read.
Piyush Patel
Ranch Hand

Joined: Feb 24, 2009
Posts: 127

You can reduce image size by using BitmapFactory.Options



set options.inSampleSize to some what higher value p(i.e 5) which means high compression that will take care of OutofMemory.
this worked for me.

thanks
Vishal Srivastav
Ranch Hand

Joined: Nov 29, 2008
Posts: 46

The problem is, even after reducing the size of the image to 1/3, the same error is coming.

When I am using the application to click the pic in LANDSCAPE mode, then no error is coming, and what I saw is automatically Image captured has size in KBs. In the sama application, when I am converting the same byte[] to write an image, that Image is at least of size 3.5+ MB.

Decreasing the size of the image to 1/3rd of original is not solving the matter.

Please help.
 
 
subject: OutOfMemoryError... Whats the solution?
 
Similar Threads
Byte[] to image
How to set the bitmap height at runtime
Capture image using android emulator
problem in converting string to byte array.
File outputted has size zero