Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

crop image directly from byte array

I have a byte array, which contains an image... i'd like to save it cropped.

My working method was: get the byte[] convert it into a bitmap with BitmapFactory.decodebytearray make another bitmap from it with createbitmap(sourceBitmap, x1, y1, whileX, whileY) recycle the first (uncropped one) save out the second, then recycle that too

the problem is that for a while it exists 2 bitmap, the original and the cropped one, and thats why i cant use this method with larger images (over 3MP)

is there a way to crop image directly from the byte array? I saw that there is a decodeByteArray(dataArray, offset, length, options), but i couldn't make an image from it (the remaining data was not an image)... could someone help maybe?

like image 220
MEStudent Avatar asked Jul 25 '11 15:07

MEStudent


1 Answers

The method decodeByteArray(dataArray, offset, length, options) is not intended to crop an image but to parse an image from a byte buffer that contains more data than the image itself. The typical use of this is to extract images from complex binary data structures that include images among other things.

To my knowledge there is no way to crop an image without creating a new one. To me the best you can do is what you are currently doing.

like image 62
Shlublu Avatar answered Nov 02 '22 07:11

Shlublu