2016-10-04 63 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以避免代碼解決它:)