Toolkit.getDefaultToolkit().createImage() 与 ImageIO.read()

2023-11-22

我正在使用 Swing 创建一个 UI,我想在JLabel。我使用的代码如下:

 JLabel label = new JLabel(new ImageIcon(ImageIO.read(new File("img.jpg"))));

如果我使用的话效果很好png图像,但当涉及到jpg(仅其中一些),我得到一张偏红色的图像(与我在 Paint.NET 中看到的图像不同)。 我使用的图像是这样的:img.jpg

所以我尝试了(作为替代方案):

Toolkit.getDefaultToolkit().createImage(new File("img.jpg").getAbsolutePath());
  1. 有谁知道为什么会发生这种情况?是不是特别的JPEG不支持哪种格式?
  2. 我在这个论坛上读到大多数人推荐使用 ImageIO (here例如)。为什么?

多谢


正如所讨论的here,您的 JPEG 图像可能包含虚假的透明度信息。一种简单的权宜之计是在具有兼容颜色模型的缓冲区中渲染图像,如图所示here.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Toolkit.getDefaultToolkit().createImage() 与 ImageIO.read() 的相关文章

随机推荐