在 JLabel 中显示 BMP

Posted

技术标签:

【中文标题】在 JLabel 中显示 BMP【英文标题】:Display BMP in JLabel 【发布时间】:2009-02-27 07:21:57 【问题描述】:

Java 可以显示 png、jpg 等一些图片格式,但我必须通过获取文件路径在 JLable 中显示 bmp 文件。

ImageIcon imageIcon = new ImageIcon(imageFile.getAbsolutePath());

ImageIcon 支持典型的png,gif,jpg 图像。

在我正在工作的项目中,我无法打开 bmp 文件并将相同的文件存储为 jpg,因为我不允许在运行时存储某些内容。我只能在内存中生成图像。但我不知道该怎么做。

如何在Java 1.4 中显示BMP

谢谢

【问题讨论】:

【参考方案1】:

javax.imageio.ImageIO支持BMP格式:

Image image = ImageIO.read(imageFile);
ImageIcon icon = new ImageIcon(image);

JLabel label = new JLabel(icon);

ImageIO 也可以用于不同格式之间的转换。

【讨论】:

ImageIO.read(imageFile) 在图像是 bmp 文件时返回 null 在 Java 5 之前没有内置的 BMP 支持。 我一直在弄清楚为什么我的实现几个小时都没有工作......现在我意识到直接加载 bmp 文件不起作用..【参考方案2】:

我发现一些用 Java 1.5 编写的类,但您可以轻松更新 2 个类,以便可以使用 1.4 中的类。

imag4j可以将bmp和ico文件转换成可以在java中显示的BufferedImage对象。 由于 java 1.5 语句,您可以导入 17 个类并且可能需要更新 10 行代码。

你得到一个运行良好的 bmp 转换器。

【讨论】:

以上是关于在 JLabel 中显示 BMP的主要内容,如果未能解决你的问题,请参考以下文章

jLabel 不显示

在 JLabel 上显示交互式圆形覆盖

如何在 JLabel 和 JTextField 上显示非科学格式的值?

如何设置 JLabel 文本在系统睡眠前显示

如何在 JLabel 中设置填充

在 JLabel 中打印句子