【问题标题】:Does Java have any known issues with Images and displaying themJava 在图像和显示方面是否存在任何已知问题
【发布时间】:2014-01-04 13:44:14
【问题描述】:

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

物品图片来自网络上的不同位置和许多来源。

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

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

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

...对于我的问题,Java 在显示任何特定类型的文件格式时是否存在问题,在实际找出困难方法之前我可能应该知道这些格式。

抱歉,没有代码,因为问题不值得。

我认为导致我出现问题的文件是从这里提取的 http://upload.wikimedia.org/wikipedia/en/d/d5/XXXX_Logo.png

【问题讨论】:

  • Java 应该能够很好地处理 png。您必须使用外部库来显示矢量格式,例如 SVG。

标签: java swing icons photos graphic


【解决方案1】:

据我了解,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();
      }
   }     
}

关于你的陈述,

抱歉,没有代码,因为问题不值得。

我不敢苟同。我认为显示代码和对导致您的问题的违规图像的引用是解决问题的关键,例如,如果我的回答对您没有帮助,我强烈敦促您向我们展示什么不起作用我们可以重现,类似于我上面发布的代码。

【讨论】:

  • 如果我能弄清楚怎么做,我可以把有问题的图片发给你,我没有看到任何附件选项
猜你喜欢
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多