【发布时间】:2017-02-12 01:35:41
【问题描述】:
像这样导入图像时,我使用.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 的大小,或者是否有解决此问题的简单方法。
【问题讨论】:
-
GIF 的缩放比例应该与其他文件格式没有什么不同,除非您专门讨论的是 animated GIF。如果是这样,您可能希望将这些关键信息放在您的问题中。
-
1.将
100作为getScaledInstance的最后一个参数传入没有意义。 2. 你真的需要缩放的instance吗?你不能把它画得更大吗(使用适当的drawImage调用,或者可能是转换后的Graphics2D?3. 你真的需要在你的程序中缩放它吗?你不能使用一个外部工具来创建具有所需大小的图像?获得动画 gif 的缩放实例似乎非常困难。这个stackoverflow.com/q/9392227 基本上是重复的,但答案看起来非常繁琐......编辑@HovercraftFullOfEels “绘制第一帧” -
不知道有什么不同会更新它:)
-
在我的情况下,我无法重新创建更大的 gif
-
@Taka 提示:回复评论时,使用
@将通知相应用户(如recently discussed on meta)
标签: java swing jframe gif animated-gif