Das Schreiben aus BMP-Dateien mit DataBuffer.TYPE_FLOAT oder DataBuffer.TYPE_DOUBLE in Java
Frage
hatte ich ein Problem mit den Image-Klassen in Java arbeiten.
Ich erstelle eine gepufferte Bild mit DataBuffer.TYPE_DOUBLE. Dies alles funktioniert gut in Erinnerung (glaube ich). Aber das Problem beginnt, wenn ich versuche, es zu schreiben ImageIO.write verwenden.
Am Anfang war ich keine Ausnahme überhaupt bekommen und stattdessen nur wurde eine leere Ausgabedatei für meine Probleme bekommen ..
Nach einem bisschen Stossen im Code um, fand ich heraus, dass die bmp Schriftsteller doesnt Unterstützung type_double Art von Dateien zu schreiben.
From: BMPImageWriterSpi.canEncodeImage:
if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_INT)
return false;
Also meine Frage ist, hat jemand einen Weg zu schreiben, diese Art von Bildern auf der Festplatte aus? jede Dokumentation oder ein Tutorial oder Link wäre hilfreich.
Danke, Basil Dsouza
Lösung
Da das BMP-Format verwendet keine Gleitkommadarstellungen, auf einem hohen Niveau ist es nicht ganz sinnvoll, Floating-Point-Daten zu verwenden, um ein Bild zu stellen, dass Sie als BMP schreiben. Haben Sie wirklich brauchen, das zu tun? Warum nicht Ints?
Die javadoc für DataBuffer.TYPE_DOUBLE
legt nahe, es ist nicht für die Verwendung ist.