6

decodeByteArray を使用できないという Google の問題レポートがあるため、簡単な方法があるかどうかを尋ねます。しかし、そのレポートは 2008 年に作成されたものであり、そこに掲載されていない解決策があることを期待していました。イシュー レポートに記載されている方法は、自分でフォーマットをデコードすることでしたが、それを入れてプログラムを遅くする必要はありません。どんな助けでも大歓迎です。

4

2 に答える 2

8

あなたのバイト配列はカメラのプレビューからのものだと思いますか? その場合はデコードする必要がありますが、2.2 では非常に簡単です。

データはバイト配列から YUV イメージを作成します。ImageFormat.NV21( int code 17)

img = new YuvImage(imgData, ImageFormat.NV21, width, height, null);

画像と同じサイズの長方形を作成します。

を作成し、ByteArrayOutputStreamこれ、長方形、および圧縮値を に渡しますcompressToJpeg()

次に、使用できます

Bitmap mBitmap = BitmapFactory.decodeByteArray(outputStream.toByteArry(),0,outputStream.size());

これをコールバックのすべてのフレームに使用すると、正常に動作します。お役に立てれば。

于 2010-12-06T14:13:17.070 に答える
2

最も簡単な方法は、次の方法で BufferedImage を作成することです。

Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0. data.length);

データはバイト配列です。

于 2010-07-23T19:07:04.940 に答える