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...
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.
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.