J'ai une application C++ qui communique avec une caméra et récupère des données d'image brutes. J'ai alors un Byte [] en C++, que je veux envoyer en Java avec JNI.Comment créer un fichier BMP à partir de raw byte [] en Java
Cependant, j'ai besoin de convertir le Byte brut [] en un format de fichier réel (.bmp était mon premier choix). Je peux facilement le faire si je l'écris de C++ dans un fichier sur le disque dur, en utilisant BITMAPFILEINFO et BITMAPHEADERINFO, mais je ne sais pas comment on pourrait envoyer le format entier à Java. Ensuite, j'ai pensé à envoyer uniquement les données brutes de l'octet [] en utilisant JNI, puis en le convertissant en .bmp, mais je ne trouve aucune bonne bibliothèque pour cela en Java.
Quel serait mon meilleur choix? Convertir l'image en C++ et ensuite l'envoyer en utilisant JNI ou envoyer les données RAW à Java, puis le convertir en .bmp? Comment est-ce que je pourrais le faire plus facilement?
Cette solution ne fonctionne pas pour moi. l'image est toujours renvoyée comme nulle. Donc ImageIO.write génère une exception. Mon tableau d'octets est une donnée d'image Y brute. Pouvez-vous élaborer plus? –
Etes-vous sûr que votre byteArray est une image valide? Je pense que la seule façon d'obtenir 'image == null' est s'il n'y a pas de ImageReader enregistré qui peut décoder votre flux. Donc, je suppose que c'est soit un type de fichier qui n'est pas pris en charge ou des données corrompues. – Stroboskop
Ses données d'image YUV avec rapport 4: 0: 0. –