Das Schreiben aus BMP-Dateien mit DataBuffer.TYPE_FLOAT oder DataBuffer.TYPE_DOUBLE in Java

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

  •  22-09-2019
  •  | 
  •  

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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top