色を表すint型のMxN配列を持っています(たとえばRGBA形式ですが、簡単に変更可能です)。私は、それらをMxNのビットマップや、スクリーンにレンダリングできる他のもの(OpenGLテクスチャなど)に変換したいと思っています。これを行うには速い方法がありますか?配列をループしてキャンバスに描画するのは非常に遅いです。intの配列をAndroidのビットマップに変換する
8
A
答えて
15
それはあなたにビットマップを与える、これを試してみてください。
// You are using RGBA that's why Config is ARGB.8888
bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
// vector is your int[] of ARGB
bitmap.copyPixelsFromBuffer(IntBuffer.wrap(vector));
EDIT:
//OR , you can generate IntBuffer from following native method
/*private IntBuffer makeBuffer(int[] src, int n) {
IntBuffer dst = IntBuffer.allocate(n*n);
for (int i = 0; i < n; i++) {
dst.put(src);
}
dst.rewind();
return dst;
}*/
は、それはあなたを助けることを願っています。
3
あなたが必要とするすべての情報を持っているようです。 Mが幅でNが高さである場合、Bitmap.createBitmapで新しいビットマップを作成し、int配列をとるsetPixelsメソッドでARGB値を入力できます。
8
なぜ使用しないのですかBitmap.setPixel?それはAPIレベル1でもあります:
int[] array = your array of pixels here...
int width = width of "array"...
int height = height of "array"...
// Create bitmap
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
// Set the pixels
bitmap.setPixels(array, 0, width, 0, 0, width, height);
必要に応じてオフセット/ストライド/ x/yで再生できます。
ループがありません。追加の割り当てはありません。
関連する問題
- 1. intをint配列に変換する
- 2. 配列をビットマップに変換する
- 3. Androidバイト配列をビットマップに変換する
- 4. int int配列への変換int
- 5. javascript intの配列をオブジェクトの配列に変換する
- 6. Java/Android - int配列を最小バイト配列に変換するには?
- 7. 配列へのポインタを配列intに変換する
- 8. 配列int配列を配列配列リストに変換する際の問題
- 9. C#で文字列配列をInt配列に変換する
- 10. KotlinでString配列をInt配列に変換するには?
- 11. オブジェクト[]配列をjavaのint []配列に変換しますか?
- 12. int []配列をJavaのshort []配列に変換します。
- 13. int配列をintに変換するには?
- 14. C++/cliの文字列配列をint配列に変換
- 15. リファクタリングRuby:文字配列をint配列に変換する
- 16. バイト配列をint配列に変換する方法は?
- 17. int配列をchar配列に変換する
- 18. C++ int配列をint16_t配列に変換する
- 19. Golangでint配列をバイト配列に変換する
- 20. pgsql int配列をPython配列に変換する
- 21. unsigned char(配列)をunsigned int(配列)に変換する
- 22. 配列内のchar変数をint型に変換する
- 23. (Int、String)を配列に変換する文字列に変換する
- 24. intを文字列に変換する方法並列配列
- 25. int配列内の文字列の座標を変換する
- 26. AndroidからビットマップをBase64文字列に変換する問題
- 27. Monoでビットマップをバイト配列に変換する方法
- 28. python:numpyの配列データ型をint64からintに変換する
- 29. 配列の結果をIntに変換する方法は?
- 30. intを異なるバイト配列のサイズに変換します。
どこかの 'makeBuffer'にバグがあります。代わりに、この方法でビットマップを埋めてください: 'bmp.copyPixelsFromBuffer(IntBuffer.wrap(vector));' –