【发布时间】:2014-08-05 16:23:56
【问题描述】:
我需要在 Eclipse 中使用 java 读取 16 位位图 (R5 G6 B5)。我用 ImageIO.read() 尝试过,但出现错误: javax.imageio.IIOException:无法读取输入文件! 在 javax.imageio.ImageIO.read(ImageIO.java:1301)
相同的代码在 24 位位图上运行没有问题。
File file = new File("D:/MainScreen16BitR5G6B5.bmp");
imgBuf = ImageIO.read(file);
对于这种情况,除了 ImageIO.read() 还有其他方法吗?还是一些特殊的图书馆? 我搜索了解决方案,但没有找到。仅适用于 tiff 或如何转换为 16 位。
欢迎所有提示!谢谢你帮助我。
【问题讨论】:
-
I need to read a 16 Bit Bitmap (R5 G6 B5) with java in eclipse.请注意,Eclipse 只是一个 IDE,一个用于编写代码的工具。它不会影响您的代码,因此 in eclipse 您的程序将像 out of eclipse 一样运行 :) -
还要确保您的文件存在并且实际上是有效的 16 位 BMP。如果您告诉我们您使用的是什么版本的 JDK,将会很有帮助。
-
ImageIO 可以读取这样一种“特殊”格式似乎与此无关(尽管我确实不知道这一点)。你可能想试试oracle.com/technetwork/java/javase/tech/jai-142803.html,那里会有不同的新图像阅读器实现。
-
imgBuf定义为什么?此外,您的文件名很有可能更像D:\\MainScreen16BitR5G6B5.bmp -
@Marco13 它过去无法读取 16 位位图,但我相信在过去几年的某个时候添加了支持,尽管我没有具体的来源。无论如何,错误消息和
ImageIO.java源代码行显示它实际上是文件 I/O 错误,而不是格式错误(如果不支持 16 位格式 可能会出现下一个错误,但我们还没到那个地步)。
标签: java bitmap javax.imageio