Animiertes Gif als BufferedImage

  • Themenstarter Themenstarter Fitmann
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
F

Fitmann

Gast
Hallo zusammen,

Ich hab da mal ein problem,
ich habe ein animiertes gif in ein bufferedImage geladen und zeichne dieses in ein Jpanel, das funzt auch soweit alles ganz gut, allerdings bewegt sich das gif nicht mehr, vorher habe ich mit images gearbeitet da ging es, liegt das jetz am bufferedimage oder gibts da nen trick?
 
Code:
private int action=0;
private BufferedImage[] images = new BufferedImage[17];
private BufferedImage tmpImage = null;

void loadImage(String path) {
		BufferedImage tmpImage = null;
		 try {
		 tmpImage = ImageIO.read(new File(path));
		} catch (IOException e) {
			e.printStackTrace();
		 }

		images[action] = tmpImage;
		tmpImage = null;
}

Image getImage() {
		return images[action];
	}

dann speicher ich das gif in nem arry... das findet in der klasse ELogik statt

danch zeichne ich es auf ein JFrame in der klase EGui

Code:
public void paint(Graphics g) {
		super.paint(g);
		if (logik.getImage() != null)
			 g.drawImage(logik.getImage(), 50, 100, this);
	}
 
und wenn du das Image so lädst:

new ImageIcon("PFAD/ZUR/DATEI").getImage()

Geht es vielleicht dann? (das images Array wäre dann natürlich ein Image[] array und kein BufferedImage array!)
 
jagut ich hab das bild vorher so geladen:
Code:
Image tmpImage=Toolkit.getDefaultToolkit.getImage(path);

aber ich will im endeffeckt diesen array als teil eines neuen objecktes namen Elemnt mit samt den reingeladenen bildern als externe datei speichen, so das ich garkeine gifs mehr im ordner habe, [ich arbeite da grade an nem 2d jump and run]... das sollen quasi meine figuren werden.[/code]
 
hat sich erledigt.... ich hab jetz imageicon genommen, da bufferedimage eh nicht serialisierbar ist.
 
Hi,

ich habe mir den Code mal ein wenig genommen und verändert.

Es klappt auch wenn ich die java Dateien direkt verwende, aber irgendwie als JAR Datei nicht.
Dachte das ich über das getResource() behben könnte, aber irgendwie findet die JAR scheinbar immernoch keine Bilder.

Jemand ne Idee woran es liegen könnte:

Code:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;


public class Gif extends JFrame{
	static final long serialVersionUID = 1L;
	private Image tmpImage;

	public Gif(){
		super("Test");
		setSize(500,500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
		loadImage();
		this.repaint();
	}
	
	void loadImage() {
		
       tmpImage = Toolkit.getDefaultToolkit().getImage(getClass().getResource("orc4.gif"));
	} 
	
	public void paint(Graphics g) {
	      super.paint(g);
	      g.drawImage(tmpImage, 24, 24, this);
	      g.drawImage(tmpImage, 48, 24, this);
	      g.drawImage(tmpImage, 72, 24, this);
	      g.drawImage(tmpImage, 96, 24, this);
    } 
}
 
Animierte Gif's darzustellen ist grundsätzlich problematisch. Ich würde die Einzelbilder speichern und die Animation selbst erzeugen.
 
Muss sagen ich war überrascht, klappt mit dem Code ohne Probleme.
ok ist nur ein kleines gif, sprich was aus zwei Bildern besteht, aber geht.

Code:
JLabel tmp = new JLabel(new ImageIcon(getClass().getResource("/orc4.gif")));
 
@Quaxli kannst du mir zufällig sagen wie man die Einzelbilder extrahieren kann?

Tom
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben