【问题标题】:How to draw a gif animation in java? [duplicate]如何在java中绘制gif动画? [复制]
【发布时间】:2014-04-10 00:34:41
【问题描述】:

我有一些 gif 动画图片(请参阅下面的示例图片)
当我用图形对象绘制它们时,我只得到第一张图像,
我知道我可以用 JLabel 做到这一点(来自其他 stackoverflow 答案)
但我想用图形对象做到这一点,
谁能告诉我
一个简单的方法如何绘制整个动画?

【问题讨论】:

  • 当然,看看this example,然后选择你想做多少工作;) - 请记住,这是一个示例,它不是一个完整的解决方案
  • @MadProgrammer 一个 gif 真的需要这么多代码吗?
  • 实际上,您可能还需要更多,这基本上就是JLabelImageIcon 在后台发生的事情,它只是很好地为您隐藏起来。这也是为什么ImageObserverImageProducer 接口如此重要的原因
  • 一个简化的例子可以在这里找到:tutoref.com/how-to-display-an-animated-gif-in-java-swing

标签: java image swing animation graphics


【解决方案1】:

“请告诉我一个简单的方法如何绘制整个动画?!”

这可能与您在图像中的阅读方式有关。如果您使用 ImageIO.read,它将无法正常工作。如果您将其阅读为ImageIcon,它似乎可以工作

ImageIcon.getImage()

Image icon = new ImageIcon(new URL("http://i.stack.imgur.com/KSnus.gif")).getImage();
...
g.drawImage(icon, 20, 20, this);

带有 ImageIO 的图像

Image icon = ImageIO.read(new URL("http://i.stack.imgur.com/KSnus.gif"));
...
g.drawImage(icon, 20, 20, this);

【讨论】:

  • 或者,如果你真的很疯狂(或疯了),你可以自己动手,就像 cmets 中链接到 OQ 的示例:P
  • @MadProgrammer 也许你应该把你的 SN 改成 CrazyProgrammer :P
  • 我只是 LazyProgrammer :)
  • @peeskillet 谢谢,它有效,但我有一个有趣的情况,当我像你的例子一样绘制图像时,我从计算机加载的另一个图像也在绘制,但是当我将它注释掉时第一个不画,: (
  • @java-love 哦,好的,new ImageIcon(getClass().getResource("/resources/image.gif")).getImage(); 其中resources 在您的src 中。
猜你喜欢
  • 2012-05-23
  • 1970-01-01
  • 2021-07-15
  • 2014-01-22
  • 1970-01-01
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多