2016-10-04 56 views
0

我攀登的图像容易与.getScaledInstance像这样导入它们时:.getScaledInstance与GIF动画工作

player_sprite = a_1.getImage().getScaledInstance(150, 150, 100); 

但同样不能对缩放动画GIF,当我做缩放同样的方法可以说GIF在显示时会引起问题。当使用g.drawImage时,它只绘制第一帧然后消失。

下面是用于导入,我使用和下文将是我怎样显示动画GIF到JFrame一个例子的GIF的完整代码:

导入它:

ImageIcon a_1 = new ImageIcon(FrontHand.class.getResource("/Sprites/character_move_down.gif")); 
    move_player_down = a_1.getImage().getScaledInstance(100, 100, 100); 

显示它:

g.drawImage(move_player_down, 100, 100, this); 

是否有另一种简单的方法,我可以用增加GIF动画的大小或是否有针对此问题的简单的解决。

+0

GIF的规模应该没有区别于其他文件格式,除非你具体谈论*动画* GIF的。如果是这样,你可能想把这个重要信息放在你的问题中。 –

+0

1.将'100'作为最后一个参数传递给'getScaledInstance'没有任何意义。 2.你真的*需要缩放*实例*吗?难道你不能把它画得更大吗(使用适当的'drawImage'调用,或者可以改造'Graphics2D'?3.你真的需要在你的程序中调整它*吗?你不能使用外部工具来创建所需大小的图像?获取动画gif的缩放实例似乎很难。这个http://stackoverflow.com/q/9392227/基本上是重复的,但答案看起来非常杂乱......编辑@ HovercraftFullOfEels *“绘制第一帧”* – Marco13

+0

不知道有什么区别会更新它:) – Taka

回答

1

我已经找到了解决方案,同时进入scalr,我最终没有与scalr而是发现其上使用.getscaledinstance正在改变大小,然后用的paintIcon打印,而不是像的drawImage所以scalr螺纹评论:

变化大小:

ImageIcon a_1 = new ImageIcon(FrontHand.class.getResource("/Sprites/character_move_down.gif")); 
a_1.setImage(a_1.getImage().getScaledInstance(150, 150, Image.SCALE_DEFAULT)); 
move_player_down = a_1; 

绘画的图标:

move_player_down.paintIcon(this, g, 100, 100); 

它的工作原理就像一个魅力,而且不需要我改变我所有的p以避免代码解决它:)