Java 读取 bmp 文件?

Posted

技术标签:

【中文标题】Java 读取 bmp 文件?【英文标题】:Java Read bmp files? 【发布时间】:2010-08-22 00:07:39 【问题描述】:

我正在为一个简单的地图构建器开发地图编辑器。

我的想法是将地图中的墙壁绘制为黑色像素,其他所有内容(白色)都是房间中的空闲空间。

任何 .jar 来读取 bmp 文件?从而避免header等?

更新

我正在阅读Image4j

提前致谢。

【问题讨论】:

This 帖子可能会有所帮助。没有承诺,只是有点谷歌搜索! ^_^ 【参考方案1】:

如果您想使用 Image4j,这是一个非常简单的方法。此代码将在 JLabel 中显示 bmp。

    BufferedImage image = null;

    try
    
        image = BMPDecoder.read(new File("C:\\test.bmp"));
    
    catch(IOException ex)
    
        Logger.getLogger(DesktopApplication1View.class.getName()).log(Level.SEVERE, null, ex);
    

    jLabel1.setIcon(new ImageIcon(image));

【讨论】:

【参考方案2】:

我建议您还查看 Java 高级成像 API Image I/O sub-project。项目Javadoc 表示支持(主要是光栅模式)BMP 文件。

【讨论】:

【参考方案3】:
import javax.imageio.ImageIO;

class ListImageReaders 
    public static void main(String[] args) 
        String[] imageReaders = ImageIO.getReaderFileSuffixes();
        for (String imageReader : imageReaders) 
            System.out.println(imageReader);
        
    

提供输出(在 Java 1.6 下)

bmp
jpg
wbmp
jpeg
png
gif
Press any key to continue . . .

【讨论】:

以上是关于Java 读取 bmp 文件?的主要内容,如果未能解决你的问题,请参考以下文章

读取 BMP 文件 C++(读取 BMP 标头时出现问题)

为啥 ImageIO 不读取 BMP 文件,直到它被重新保存在 MS Paint 中?

用标准c读取bmp文件的长宽?

用标准c读取某bmp文件的长宽及象素等信息需要哪些函数?

读取和写入 BMP 文件

用c语言读取24位位图bmp文件