Ho una matrice MxN di int che rappresenta i colori (ad esempio il formato RGBA, ma è facilmente modificabile). Mi piacerebbe convertirli in un Bitmap MxN o qualcos'altro (come una trama OpenGL) che posso renderizzare sullo schermo. C'è un modo veloce per farlo? Passare attraverso l'array e trascinarli sulla tela è troppo lento.Conversione di array di int in Bitmap su Android
8
A
risposta
15
Prova questo vi darà il bitmap.
// 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;
}*/
Spero che vi aiuterà.
3
Sì, sembra che tu abbia tutte le informazioni di cui hai bisogno. Se M è la larghezza e N è l'altezza, puoi creare una nuova bitmap con Bitmap.createBitmap e puoi inserire i valori ARGB con il metodo setPixels che accetta un array int.
8
Perché non utilizzare Bitmap.setPixel? È anche 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);
È possibile giocare con offset/falcata/x/y secondo necessità.
Nessun anello. Nessuna allocazione aggiuntiva.
Problemi correlati
- 1. Array di byte Android su Bitmap Come
- 2. Conversione di bitmap in Drawable in Android
- 3. Conversione di bitmap in jpeg in android
- 4. Conversione di elemento in array di caratteri in int
- 5. Rotazione, conversione e ridimensionamento simultaneo di bitmap su tela Android
- 6. Conversione di EditText in int? (Android)
- 7. Android: conversione di una bitmap in bitmap monocromatica (1 bit per pixel)
- 8. NullPointerException su getReseources() Bitmap Array
- 9. Conversione di bitmap in memoria in Bitmap con Bitmap.Config.RGB_565
- 10. Conversione di una bitmap in monocromatica
- 11. Conversione di Numpy Array su OpenCV Array
- 12. Conversione da modificabile a int in Android
- 13. Conversione di array di byte (array di caratteri) in un tipo intero (breve, int, lungo)
- 14. conversione veloce Bitmap in Bitmap Origine wpf
- 15. Conversione di un array di byte Int a BCD
- 16. Ruota bitmap su tela Android
- 17. Conversione di int o String in un array di caratteri su Arduino
- 18. HBITMAP bitmap conversione
- 19. int array per tessitura opengl in Android
- 20. Bitmap.createBitmap (fonte Bitmap, int x, int y, int larghezza, int altezza) tornare bitmap sbagliato
- 21. conversione di byte in int in Java
- 22. Salvataggio di bitmap su scheda SD senza comprimerlo in Android
- 23. Array di stringhe su array di Android
- 24. iOS: conversione dell'ID in int
- 25. Android - Scrive array di byte su OutputStreamWriter
- 26. Conversione array int ad array di stringhe in NumPy senza troncamento
- 27. Conversione di un array di byte in PNG/JPG
- 28. Conversione implicita Java di int a byte
- 29. conversione da Android int a esadecimale
- 30. Ottimizzazione per fusione pixel su bitmap Android
C'è un bug nel tuo 'makeBuffer' da qualche parte. Riempi la bitmap in questo modo: 'bmp.copyPixelsFromBuffer (IntBuffer.wrap (vector));' –