Render un byte como mapa de bits en Android
Estoy recibiendo una matriz de bytes de una llamada JNI, y tratando de construir un objeto Bitmap con él.
Mi problema es, el código siguiente, devuelve null.
- GoogleMap dentro de un fragmento en un ViewPager, guarda todos los eventos de toque en GoogleMap
- Error al sincronizar el archivo - Android studio (app: mergeDebugResources)
- Android Geofencing BroadcastReceiver no activado
- Alineación derecha del texto en android?
- Abrir el archivo pdf desde el servidor con la intención de Android
byte[] image = services.getImageBuffer(1024, 600); Bitmap bmp = BitmapFactory.decodeByteArray(image, 0, image.length);
¿Algún consejo?
PS: El diseño de píxeles es BGR, no RGB.
- Log4j2 en Android
- Deserialización GSON con tipos genéricos y nombres genéricos de campos
- Cómo reducir un archivo .jar para aligerar una aplicación de Android
- Android - Iniciar el servicio en el arranque
- Subclase de JavaScript en Parse.com
- Android simulacro de ubicación sin configuración de ubicación falsa (dispositivo con raíz)
- Convertir Vec4i a Java openCV
- ImageView.getWidth () devuelve 0
El doc dice que el método devuelve "null si la imagen no puede ser decodificada". Puedes probar:
byte[] image = services.getImageBuffer(1024, 600); InputStream is = new ByteArrayInputStream(image); Bitmap bmp = BitmapFactory.decodeStream(is);
Incluso si no creo que va a cambiar nada sin embargo .. Trate de echar un vistazo a android.graphics.BitmapFactory.Options así
El decodeByteArray realmente doesens't funciona con este formato. Cambio de BGR a RGB manualmente.
byte[] image = services.getImageBuffer(1024, 600); Bitmap bmp = Bitmap.createBitmap(1024, 600, Bitmap.Config.RGB_565); int row = 0, col = 0; for (int i = 0; i < image.length; i += 3) { bmp.setPixel(col++, row, image[i + 2] & image[i + 1] & image[i]); if (col == 1024) { col = 0; row++; }
Sin embargo,
for (i < image.length) 。。。bmp.setPixel(image[i + 2] & image[i + 1] & image[i]);
puede causar:
08-29 14: 34: 23.460: ERROR / AndroidRuntime (8638): java.lang.ArrayIndexOutOfBoundsException
- No se puede establecer la propiedad del sistema en Android mediante Reflection o el comando de Linux exec en Android
- Cómo desenfocar una parte de la imagen en Android?