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.deco
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.
For JPEG (the ubiquitous picture format on mobile devices), it is possible to decode only some specific rectangle. This requires some discipline in writing C code on top of generic software decoder, especially if you want to do it as fast as possible, and waste not extra RAM.
Support in libjpeg-turbo was been added five years after this question had been asked.