Java是否有任何已知的图像问题并显示它们

时间:2013-12-16 23:44:21

标签: java swing icons photos graphic

我是Java新手,但不是图形新手 我正在尝试通过一个项目来扩展我的理解,在这个项目中,我使用JLabels和图标显示许多项目照片以显示它们,

物品图片从网上的不同位置和许多来源获得。

我已将这些文件转换为PNG文件,因为它们具有透明背景。

最近我浪费了整整一个周末来检查并重新检查一些代码,因为一个项目就是不会显示,按照其结论的逻辑告诉我这是文件出错,即使文件正确显示在的Photoshop?

我进入文件查看它的独特之处,但除了8位而不是32位之外,我找不到任何差异。

...所以我的问题是,Java在显示任何特定类型的文件格式时遇到问题,在实际找到困难之前我可能应该知道这些格式。

很抱歉没有代码,因为问题不能保证。

我认为引起我问题的文件是从这里开始的 http://upload.wikimedia.org/wikipedia/en/d/d5/XXXX_Logo.png

1 个答案:

答案 0 :(得分:4)

据我所知,Java应该能够正常处理PNG。 Java不支持的一些格式,包括SVG等矢量图像格式。但对于大多数这些,外部图书馆可以提供帮助。

关于您链接到的图像示例XXXX Image,我可以让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();
      }
   }     
}

关于你的陈述,

  

很抱歉没有代码,因为问题不能保证。

我不同意见。我认为显示代码并引用导致问题的违规图像是解决问题的关键,例如,如果我的答案对您没有帮助,我强烈建议您告诉我们什么是不起作用的方式我们可以重现,类似于我上面发布的代码。