android - outofmemoryerror while making bitmap -


i making camer application can composite camera preview , png.

i save images in onpicturetaken callback

my source below

    public void onpicturetaken(byte[] data, camera camera) {              //preview camera             bitmap bitmap = bitmapfactory.decodebytearray(data, 0, data.length);               // overlay image              bitmap overlaybmp = overlay.getdrawingcache();               //blank beatmap              bitmap blankbitmap =              bitmap.createbitmap(bitmap.getwidth(),bitmap.getheight(),              bitmap.config.argb_8888);               //make canvas             canvas canvas = new canvas(blankbitmap);               //composite image             canvas.drawbitmap(bitmap, null,new rect(0, 0, bitmap.getwidth(),      bitmap.getheight()), null);              canvas.drawbitmap(overlaybmp, null,new rect(0, 0, bitmap.getwidth(),      bitmap.getheight()), null);  

however shows outofmemoryerror,how can solve problem..?

05-20 15:13:49.114: e/androidruntime(31647): fatal exception: main 05-20 15:13:49.114: e/androidruntime(31647): java.lang.outofmemoryerror 05-20 15:13:49.114: e/androidruntime(31647):    @ android.graphics.bitmap.nativecreate(native method) 05-20 15:13:49.114: e/androidruntime(31647):    @ android.graphics.bitmap.createbitmap(bitmap.java:605) 05-20 15:13:49.114: e/androidruntime(31647):    @ android.graphics.bitmap.createbitmap(bitmap.java:585) 05-20 15:13:49.114: e/androidruntime(31647):    @ com.example.firstcameraappli.mainactivity$2.onpicturetaken(mainactivity.java:103) 05-20 15:13:49.114: e/androidruntime(31647):    @ android.hardware.camera$eventhandler.handlemessage(camera.java:750) 05-20 15:13:49.114: e/androidruntime(31647):    @ android.os.handler.dispatchmessage(handler.java:99) 05-20 15:13:49.114: e/androidruntime(31647):    @      android.os.looper.loop(looper.java:137) 05-20 15:13:49.114: e/androidruntime(31647):    @ android.app.activitythread.main(activitythread.java:4514) 05-20 15:13:49.114: e/androidruntime(31647):    @ java.lang.reflect.method.invokenative(native method) 05-20 15:13:49.114: e/androidruntime(31647):    @ java.lang.reflect.method.invoke(method.java:511) 05-20 15:13:49.114: e/androidruntime(31647):    @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:980) 

try code....

picturecallback mypicturecallback_jpg = new picturecallback() {      @override     public void onpicturetaken(byte[] data, camera arg1) {          bitmapfactory.options opt;          opt = new bitmapfactory.options();         opt.intempstorage = new byte[16 * 1024];         parameters parameters = arg1.getparameters();         size size = parameters.getpicturesize();          int height11 = size.height;         int width11 = size.width;         float mb = (width11 * height11) / 1024000;          if (mb > 4f)             opt.insamplesize = 4;         else if (mb > 3f)             opt.insamplesize = 2;          //preview camera         bitmap bitmap = bitmapfactory.decodebytearray(data, 0, data.length,opt);        } } 

get image in bitmap use per requirements.


Comments

Popular posts from this blog

.htaccess - First slash is removed after domain when entering a webpage in the browser -

Automatically create pages in phpfox -

c# - Farseer ContactListener is not working -