Tengo una aplicación C++ que se comunica con una cámara y recupera datos de imágenes sin formato. Luego tengo un Byte [] en C++, que deseo enviar a Java con JNI.Cómo crear un archivo BMP a partir de bytes sin formato [] en Java
Sin embargo, necesito convertir el Byte sin formato [] a un formato de archivo real (.bmp fue mi primera opción). Puedo hacerlo fácilmente si lo escribo desde C++ a un archivo en el disco duro, usando BITMAPFILEINFO y BITMAPHEADERINFO, pero no sé cómo se podría enviar el formato completo a Java.
Luego pensé en enviar solo datos de bytes brutos [] usando JNI y luego convertirlos a .bmp, pero parece que no puedo encontrar ninguna buena biblioteca para hacer esto en Java.
¿Cuál sería mi mejor opción? ¿Convirtiendo la imagen en C++ y luego enviándola usando JNI o enviando los datos RAW a Java y luego convirtiéndolos a .bmp? ¿Cómo sería más fácil lograr esto?
Esta solución no funciona para mí. la imagen siempre se devuelve como nula. Entonces ImageIO.write lanza una excepción. Mi matriz de bytes es una información de imagen Y en bruto. ¿Puedes elaborar más? –
¿Estás seguro de que tu byteArray es una imagen válida? Creo que la única forma de obtener 'image == null' es si no hay ningún ImageReader registrado que pueda decodificar tu transmisión. Así que supongo que es un tipo de archivo que no es compatible o datos corruptos. – Stroboskop
Es una información de imagen YUV con una relación 4: 0: 0. –