java - 在java中使用DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE写出BMP文件

标签 java image writer

我在使用 java 中的图像类时遇到问题。

我正在使用 DataBuffer.TYPE_DOUBLE 创建缓冲图像。这一切在内存中都运行良好(我认为)。但当我尝试使用 ImageIO.write 编写它时,问题就开始了。

最初我没有遇到任何异常,而只是得到一个空的输出文件来解决我的麻烦..

经过一番研究代码,我发现bmp writer不支持写入type_double类型的文件。

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

所以我的问题是,有没有人有办法将此类图像写入磁盘?任何文档或教程或链接都会有帮助。

谢谢, 巴兹尔·杜苏扎

最佳答案

由于 BMP 格式不使用任何浮点表示形式,因此在较高级别上,使用 float 据来表示要写入为 BMP 的图像不太有意义。你真的需要这样做吗?为什么不是整数?

javadoc for DataBuffer.TYPE_DOUBLE表明它目前不打算使用。

关于java - 在java中使用DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE写出BMP文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530831/

相关文章:

python - 向 .csv 写入多于一列

java - 在表格布局中显示动态行的问题 : Android

css - 内容 :url in CSS for multiple images

vector - 如何在 PyQGIS 中向地理包追加/添加图层

python - 使用 dictwriter 覆盖同一 csv 文件中的行

python - 放大图像时控制平移(锚定点)

java - JDK源码中java.util.Hashtable的hashCode函数如何理解

java - 多线程 A* 寻路在自上而下游戏中卡住

java - 从文件中读取对象 - Java

Android 图像缓存