2017-01-21 10 views
5

アンドロイドで、私はここからhttps://inducesmile.com/android/android-camera2-api-example-tutorial/カメラのチュートリアルのImageオブジェクトを取得します。しかし、今私はピクセル値をループしたい、誰も私がそれを行うことができます知っている?それを他のものに変換する必要がありますか?それをどうすればできますか?android.media.Imageをビットマップオブジェクトに変換するには?

おかげ

答えて

5

あなたはすべてのピクセル全体のループにしたいなら、あなたはBitmapオブジェクトに最初にそれを変換する必要があります。さて、私はソースコードでImageを返すので、直接バイトをビットマップに変換することができます。

Image image = reader.acquireLatestImage(); 
    ByteBuffer buffer = image.getPlanes()[0].getBuffer(); 
    byte[] bytes = new byte[buffer.capacity()]; 
    buffer.get(bytes); 
    Bitmap bitmapImage = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, null); 

ビットマップオブジェクトを取得すると、すべてのピクセルを繰り返し処理できるようになりました。

+0

バッファが後で使用されない場合、 'buffer.get(bytes)'行の目的は何ですか? – mercury0114

+2

バッファからバイト配列にメモリ内のイメージをロードします。したがって、 'get'はイメージバッファからバイトを検索します。 –

+0

これを行う他の方法はありますか(Imageからピクセルにアクセスする)?ビットマップを読み込むには、多くのメモリが必要です。 – Mugur

関連する問題