.getScaledInstance 处理 GIF 动画
.getScaledInstance working with animated GIFs
我在像这样导入图像时使用 .getScaledInstance
轻松缩放图像:
player_sprite = a_1.getImage().getScaledInstance(150, 150, 100);
但是对于缩放动画 GIF 来说,情况并非如此,因为当我使用相同的方法缩放 GIF 时,它会在显示时出现问题。使用 g.drawImage
时,它只绘制第一帧然后消失。
这是导入我使用的 GIF 的完整代码,下面是我如何将动画 GIF 显示到 JFrame
:
的示例
正在导入:
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 的大小,或者是否有解决此问题的简单方法。
我在进入 scalr 时找到了一个解决方案,我不是以 scalr 结束,而是在一个 scalr 线程上找到了一条评论,它使用 .getscaledinstance 改变了大小,然后用 paintIcon 打印而不是 drawImage 像这样:
大小变化:
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);
它就像一个魅力,不需要我更改我以前的所有代码来解决它:)
我在像这样导入图像时使用 .getScaledInstance
轻松缩放图像:
player_sprite = a_1.getImage().getScaledInstance(150, 150, 100);
但是对于缩放动画 GIF 来说,情况并非如此,因为当我使用相同的方法缩放 GIF 时,它会在显示时出现问题。使用 g.drawImage
时,它只绘制第一帧然后消失。
这是导入我使用的 GIF 的完整代码,下面是我如何将动画 GIF 显示到 JFrame
:
正在导入:
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 的大小,或者是否有解决此问题的简单方法。
我在进入 scalr 时找到了一个解决方案,我不是以 scalr 结束,而是在一个 scalr 线程上找到了一条评论,它使用 .getscaledinstance 改变了大小,然后用 paintIcon 打印而不是 drawImage 像这样:
大小变化:
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);
它就像一个魅力,不需要我更改我以前的所有代码来解决它:)