That method should not crash (I will fix that), but it is only intended to re-create a picture that was previously written to a stream. It does not know how to decode or interpreted images or other data formats. Use BitmapFactory for that.
On Sun, Jan 4, 2009 at 11:29 AM, nickthecook <nickthec...@gmail.com> wrote: > > Hello all, > > I'm having some trouble creating a Picture from an InputStream. I am > trying to do this: > > ByteArrayInputStream bis = new ByteArrayInputStream(bytes); > Picture pic = Picture.createFromStream(bis); > > The problem also occurs when I try to use an InputStream returned by > ContentResolver.openInputStream(Uri): > > InputStream is = getContentResolver.openInputStream(mUri); > Picture pic = Picture.createFromStream(is); > > Picture.createFromStream(InputStream) invokes the native method > Picture.nativeCreateFromStream(InputStream, byte[]), and this is where > the trail goes cold for me: > > public static Picture createFromStream(InputStream stream) { > return new Picture( > nativeCreateFromStream(stream, new byte > [WORKING_STREAM_STORAGE])); > } > > I have been loading images from this Uri ("content://media/external/ > images/media/152") successfully for a while. I open an InputStream, > read all the bytes, close the input stream, and there is no problem. > However, when I try to use either the InputStream returned by > ContentResolver.openInputStream(Uri), or I read all the bytes out of > that and wrap them in a ByteArrayInputStream, Picture.createFromStream > (InputStream) fails with the stack trace below. > > Has anyone successfully used Picture.createFromStream(InputStream)? > > ======= Stack Trace ======== > I/dalvikvm-heap( 4776): Grow heap (frag case) to 5.940MB for 3000016- > byte allocation > D/dalvikvm( 4776): GC freed 371 objects / 20736 bytes in 89ms > I/Image ( 4776): Read 345682 bytes for > content://media/external/images/media/152. > I/DEBUG ( 29): *** *** *** *** *** *** *** *** *** *** *** *** *** > *** *** *** > I/DEBUG ( 29): Build fingerprint: 'android-devphone1/ > dream_devphone/dream/trout:1.0/UNLOCKED/116222:userdebug/test-keys' > I/DEBUG ( 29): pid: 4776, tid: 4776 >>> org.hopto.group18.postbot > <<< > I/DEBUG ( 29): signal 6 (SIGABRT), fault addr 000012a8 > I/DEBUG ( 29): r0 00000000 r1 00000006 r2 00000000 r3 00000080 > I/DEBUG ( 29): r4 00002eb0 r5 40008000 r6 00000000 r7 00000025 > I/DEBUG ( 29): r8 beb0a630 r9 4104d9c8 10 4104d9b8 fp 00000000 > I/DEBUG ( 29): ip ffffffff sp beb0a5c8 lr afe0ef37 pc > afe0d1fc cpsr 00000010 > I/DEBUG ( 29): #00 pc afe0d1fc /system/lib/libc.so > I/DEBUG ( 29): #01 pc afe0ef34 /system/lib/libc.so > I/DEBUG ( 29): #02 pc ace08540 /system/lib/libcorecg.so > I/DEBUG ( 29): #03 pc ac075cec /system/lib/libsgl.so > I/DEBUG ( 29): #04 pc ad3413da /system/lib/ > libandroid_runtime.so > I/DEBUG ( 29): #05 pc ad00d9f4 /system/lib/libdvm.so > I/DEBUG ( 29): #06 pc ad04120e /system/lib/libdvm.so > I/DEBUG ( 29): #07 pc ad012748 /system/lib/libdvm.so > I/DEBUG ( 29): #08 pc ad02a92c /system/lib/libdvm.so > I/DEBUG ( 29): #09 pc ad0169d0 /system/lib/libdvm.so > I/DEBUG ( 29): #10 pc ad052096 /system/lib/libdvm.so > I/DEBUG ( 29): #11 pc ad03ccbc /system/lib/libdvm.so > I/DEBUG ( 29): #12 pc ad012748 /system/lib/libdvm.so > I/DEBUG ( 29): #13 pc ad02a92c /system/lib/libdvm.so > I/DEBUG ( 29): #14 pc ad0169d0 /system/lib/libdvm.so > I/DEBUG ( 29): #15 pc ad051f10 /system/lib/libdvm.so > I/DEBUG ( 29): #16 pc ad03f87a /system/lib/libdvm.so > I/DEBUG ( 29): #17 pc ad3282b4 /system/lib/ > libandroid_runtime.so > I/DEBUG ( 29): #18 pc ad328d40 /system/lib/ > libandroid_runtime.so > I/DEBUG ( 29): #19 pc 00008c12 /system/bin/app_process > I/DEBUG ( 29): #20 pc afe1dbd2 /system/lib/libc.so > I/DEBUG ( 29): #21 pc afe0b010 /system/lib/libc.so > I/DEBUG ( 29): #22 pc b0000d70 /system/bin/linker > I/DEBUG ( 29): stack: > I/DEBUG ( 29): beb0a588 beb0a630 [stack] > I/DEBUG ( 29): beb0a58c afe35f3c > I/DEBUG ( 29): beb0a590 00000084 > I/DEBUG ( 29): beb0a594 00000001 > I/DEBUG ( 29): beb0a598 afe35f3c > I/DEBUG ( 29): beb0a59c 0000000c > I/DEBUG ( 29): beb0a5a0 afe35f3c > I/DEBUG ( 29): beb0a5a4 afe12dbd /system/lib/libc.so > I/DEBUG ( 29): beb0a5a8 afe35f3c > I/DEBUG ( 29): beb0a5ac afe35f90 > I/DEBUG ( 29): beb0a5b0 00000000 > I/DEBUG ( 29): beb0a5b4 afe1238d /system/lib/libc.so > I/DEBUG ( 29): beb0a5b8 ace0acc0 /system/lib/libcorecg.so > I/DEBUG ( 29): beb0a5bc afe11539 /system/lib/libc.so > I/DEBUG ( 29): beb0a5c0 df002777 > I/DEBUG ( 29): beb0a5c4 e3a070ad > I/DEBUG ( 29): #00 beb0a5c8 00002eb0 > I/DEBUG ( 29): beb0a5cc 40008000 > I/DEBUG ( 29): beb0a5d0 00000000 > I/DEBUG ( 29): beb0a5d4 4104d9d0 > I/DEBUG ( 29): beb0a5d8 ffffffff > I/DEBUG ( 29): beb0a5dc afe0ef37 /system/lib/libc.so > I/DEBUG ( 29): #01 beb0a5e0 00000004 > I/DEBUG ( 29): beb0a5e4 00000001 > I/DEBUG ( 29): beb0a5e8 00000000 > I/DEBUG ( 29): beb0a5ec 10000000 > I/DEBUG ( 29): beb0a5f0 b000f55c /system/bin/linker > I/DEBUG ( 29): beb0a5f4 ffffffdf > I/DEBUG ( 29): beb0a5f8 ac1261c4 > I/DEBUG ( 29): beb0a5fc 00065448 [heap] > I/DEBUG ( 29): beb0a600 000bfa68 [heap] > I/DEBUG ( 29): beb0a604 ace08544 /system/lib/libcorecg.so > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---