En écrivant les fichiers BMP avec DataBuffer.TYPE_FLOAT ou DataBuffer.TYPE_DOUBLE en java

StackOverflow https://stackoverflow.com/questions/2530831

  •  22-09-2019
  •  | 
  •  

Question

J'ai eu un problème de travail avec les classes d'images en java.

Je suis en train de créer une image en mémoire tampon avec DataBuffer.TYPE_DOUBLE. Tout cela fonctionne très bien en mémoire (je pense). Mais le problème commence lorsque je tente de l'écrire en utilisant ImageIO.write.

Dans un premier temps, je recevais pas d'exception du tout et au lieu était seulement obtenir un fichier de sortie vide pour mes ennuis ..

Après un peu de fouiner dans le code, je l'ai trouvé que le soutien ne marche pas écrivain bmp écrit le type type_double de fichiers.

From: BMPImageWriterSpi.canEncodeImage:
        if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_INT)
        return false;

Alors ma question est, quelqu'un at-il une façon d'écrire sur ce genre d'images sur le disque? toute documentation ou tutoriel, ou un lien serait utile.

Merci, Basil Dsouza

Était-ce utile?

La solution

Étant donné que le format BMP n'utilise pas de représentations à virgule flottante, à un niveau élevé, il ne fait pas tout à fait logique d'utiliser des données à virgule flottante pour représenter une image que vous allez écrire en tant que BMP. Avez-vous vraiment besoin de faire cela? Pourquoi ne pas ints?

pour DataBuffer.TYPE_DOUBLE suggère qu'il est pas destiné à être utilisé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top