我是Java新手,但不是图形新手 我正在尝试通过一个项目来扩展我的理解,在这个项目中,我使用JLabels和图标显示许多项目照片以显示它们,
物品图片从网上的不同位置和许多来源获得。
我已将这些文件转换为PNG文件,因为它们具有透明背景。
最近我浪费了整整一个周末来检查并重新检查一些代码,因为一个项目就是不会显示,按照其结论的逻辑告诉我这是文件出错,即使文件正确显示在的Photoshop?我进入文件查看它的独特之处,但除了8位而不是32位之外,我找不到任何差异。
...所以我的问题是,Java在显示任何特定类型的文件格式时遇到问题,在实际找到困难之前我可能应该知道这些格式。
很抱歉没有代码,因为问题不能保证。
我认为引起我问题的文件是从这里开始的 http://upload.wikimedia.org/wikipedia/en/d/d5/XXXX_Logo.png
答案 0 :(得分:4)
据我所知,Java应该能够正常处理PNG。 是 Java不支持的一些格式,包括SVG等矢量图像格式。但对于大多数这些,外部图书馆可以提供帮助。
关于您链接到的图像示例,我可以让Java读取并显示它:
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
public class Foo {
public static void main(String[] args) {
String spec = "http://upload.wikimedia.org/wikipedia/"
+ "en/d/d5/XXXX_Logo.png";
URL url;
try {
url = new URL(spec);
BufferedImage img = ImageIO.read(url);
ImageIcon icon = new ImageIcon(img);
JOptionPane.showMessageDialog(null, icon);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
关于你的陈述,
很抱歉没有代码,因为问题不能保证。
我不同意见。我认为显示代码并引用导致问题的违规图像是解决问题的关键,例如,如果我的答案对您没有帮助,我强烈建议您告诉我们什么是不起作用的方式我们可以重现,类似于我上面发布的代码。