2011-07-25 4 views
4

J'ai un tableau d'octets, qui contient une image ... je voudrais le rogner.recadrer l'image directement à partir du tableau byte

Ma méthode de travail était: obtenir l'octet [] le convertir en une image bitmap avec BitmapFactory.decodebytearray faire une autre image bitmap avec CreateBitmap (sourceBitmap, x1, y1, whileX, Whiley) recycler le premier (uncropped un) économiser le deuxième, puis le recycler aussi

le problème est que pendant un certain temps, il existe 2 bitmap, l'original et le recadrée, et c'est pourquoi je ne peux pas utiliser cette méthode avec des images plus grandes (plus de 3MP)

Y at-il un moyen de rogner l'image directement à partir de la matrice d'octets? J'ai vu qu'il y avait un decodeByteArray (dataArray, offset, length, options), mais je ne pouvais pas en faire une image (les données restantes n'étaient pas une image) ... quelqu'un pourrait-il m'aider peut-être?

Répondre

1

La méthode decodeByteArray(dataArray, offset, length, options) n'est pas conçue pour rogner une image, mais pour analyser une image à partir d'un tampon d'octets contenant plus de données que l'image elle-même. L'utilisation typique de ceci est d'extraire des images de structures de données binaires complexes qui incluent des images parmi d'autres choses. À ma connaissance, il n'y a aucun moyen de rogner une image sans en créer une nouvelle. Pour moi, le mieux que vous puissiez faire est ce que vous êtes en train de faire.

+0

merci ... bummer ... donc je dois enregistrer tas un autre chemin et place dans le prog ... –

+0

Oui, j'ai peur. J'ai un problème assez similaire de mon côté, aussi avec des images, et c'est ennuyeux. – Shlublu

Questions connexes