Mam tablicę MxN z intami reprezentującymi kolory (na przykład format RGBA, ale można to łatwo zmienić). Chciałbym przekonwertować je na bitmapę MxN lub coś innego (np. Teksturę OpenGL), którą mogę wyświetlić na ekranie. Czy istnieje szybki sposób na zrobienie tego? Pętla w tablicy i przeciąganie jej na płótno jest zbyt powolne.Konwertowanie tablicy int na bitmapę na Androida
8
A
Odpowiedz
15
Spróbuj to daje 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;
}*/
nadzieję, że to pomoże.
3
Tak, brzmi, jakbyś miał wszystkie potrzebne informacje. Jeśli M jest szerokością, a N jest wysokością, możesz utworzyć nową bitmapę za pomocą Bitmap.createBitmap i możesz wypełnić wartości ARGB metodą setPixels, która pobiera tablicę int.
8
Dlaczego nie używać Bitmap.setPixel? Jest nawet poziom 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);
Możesz grać z offsetem/krokiem/x/y w razie potrzeby.
Brak pętli. Brak dodatkowych przydziałów.
Powiązane problemy
- 1. Konwertowanie IntWritatble na int
- 2. iOS: Konwertowanie id na int
- 3. Konwertowanie EditText na int? (Android)
- 4. Problemy z Androidem Konwertowanie ViewGroup z dziećmi na bitmapę
- 5. Konwertowanie podwójnego na int w C#
- 6. Konwertowanie wartości Eval z int na string
- 7. Konwertowanie tablic bajtów Int na BCD
- 8. Python - Konwertowanie hexa na INT/CHAR
- 9. Android: Konwertowanie mapy bitowej na monochromatyczną bitmapę (1 bit na piksel)
- 10. Konwertowanie danych RGB na bitmapę w Objective-C++ Cocoa
- 11. Konwertowanie tablicy bajtów na tablicę zmiennych
- 12. Android Najlepszy sposób na konwersję tablicy bajtów na bitmapę?
- 13. Java przekonwertować obiekt tablicy na int tablicy
- 14. Konwertowanie tablicy macierzy na tablicę ciągów znaków
- 15. Konwertowanie tablicy int32 na bajt w go
- 16. Konwertowanie tablicy NumPy na obraz PIL
- 17. Konwertowanie tablicy bajtów na PNG/JPG
- 18. Konwertowanie tablicy JSON na tablicę Bash
- 19. Konwertowanie int na 4-bajtową tablicę znaków (C)
- 20. Konwertowanie tablicy Object [] na ciąg [] tablicy w C#?
- 21. Narysuj skalowaną bitmapę na płótnie?
- 22. C#: Konwertowanie tablicy bajtów na ciąg i drukowanie na konsolę
- 23. Kod Androida do konwersji base64 string na bitmapę
- 24. Jak zwrócić bitmapę za pomocą onPictureTaken na Androida?
- 25. Konwertowanie bitmap na Drawable show nothing
- 26. Konwertowanie wyliczenia na Iterator
- 27. python: konwertowanie typu danych z tablicy numpy z int64 na int
- 28. PHP: Konwertowanie liczby całkowitej na int - otrzymanie błędu
- 29. Konwertowanie listy ciągów na listę Int w SQL
- 30. Konwertowanie ciągu znaków szesnastkowych na niepodpisany numer int C++
W twoim 'makeBuffer' jest błąd. Zamiast tego wpisz bitmapę w ten sposób: 'bmp.copyPixelsFromBuffer (IntBuffer.wrap (wektor));' –