【问题标题】:Convert List<BufferedImage> to Image将 List<BufferedImage> 转换为图像
【发布时间】:2015-11-09 03:27:11
【问题描述】:

我有以下 .ico 图像,使用 image4j 库读取:

List<BufferedImage> BI = ICODecoder.read("aImage.ico");

接下来我要将此图像设置为框架图标:

myFrame.setIconImage((Image)BI);

错误:java.lang.ClassCastException

我需要将 List 类型转换为 Image 类型。任何帮助将不胜感激。

【问题讨论】:

  • @Zavior 我不会说,您可以将BufferedImage 传递给任何接受Image 的方法,因为BufferedImage 扩展了Image,但是ListBufferedImages与Image... 不兼容。
  • 这显然不是问题的重复,到目前为止,4 位粗心的用户已投票关闭此问题... 审阅者, 在查看接近投票时要注意。

标签: java image user-interface bufferedimage


【解决方案1】:

您可以考虑使用...

myFrame.setIconImage(BI.get(0));

List 是一个东西列表(或者从技术上讲是Objects,在你的情况下是BufferedImages),而setIconImage 只需要一个...

或者,您可以利用JFrame 的能力,通过使用...以不同的分辨率提供多个不同的图像。

myFrame.setIconImages(BI);

这可能是你最初追求的……

【讨论】:

  • stuff - 那是一个技术词吗?
  • @user2310289 我不想致力于一个单一的概念;)
【解决方案2】:

在这段代码中

 List<BufferedImage> BI = ICODecoder.read("aImage.ico");

您正在加载到List

因此,当您尝试执行 myFrame.setIconImage((Image)BI); 时,您将无法将列表转换为图像。

尝试列表中的.get(0) 以返回图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多