hi ich wollte eine gif laden und anschließend an einem neuen ort speichern.
die gif datei ist animiert. wenn ich den unteren code verwende dann funktioniert das laden
des bildes in meinen editor. die animation funtkioniert.
wenn ich aber folgenden code verwende wird die gif datei zwar auch in meinem editor angezeigt,
aber die animation funktioniert nicht. es wird nur ein bild davon angezeigt.
ich muss es aber mit dem zweiten code hinkriegen, da der zweite code ein BufferedImage objekt zurückliefert, welches das Interface RenderedImage implementiert.
dies ist wichtig da ich das RenderedImage Objekt für die ImageIO.write methode brauche.
da ich später folgendes machen will:
die ImageIO.write Methode fordert als erstes Argument ein Rendered Objekt.
Das gif das in einer neuen Datei gespeichert wird, sollte dann natürlich auch beim öffnen,
wieder funktionieren, also animiert und nicht nur ein Bild der Animation anzeigen.
die gif datei ist animiert. wenn ich den unteren code verwende dann funktioniert das laden
des bildes in meinen editor. die animation funtkioniert.
Java:
class ViewComponent extends JComponent
{
private Image image;
public void setImage( File file )
{
image = Toolkit.getDefaultToolkit().getImage( file.getAbsolutePath() );
if ( image != null )
repaint();
}
@Override
protected void paintComponent( Graphics g )
{
if ( image != null )
g.drawImage( image, 0, 0, this );
}
}
wenn ich aber folgenden code verwende wird die gif datei zwar auch in meinem editor angezeigt,
aber die animation funktioniert nicht. es wird nur ein bild davon angezeigt.
Java:
class ViewComponent extends JComponent
{
private Image image;
public void setImage( File file )
{
try {
image = ImageIO.read( file );
} catch( IOException ex){
ex.printStackTrace();
}
if ( image != null )
repaint();
}
@Override
protected void paintComponent( Graphics g )
{
if ( image != null )
g.drawImage( image, 0, 0, this );
}
}
ich muss es aber mit dem zweiten code hinkriegen, da der zweite code ein BufferedImage objekt zurückliefert, welches das Interface RenderedImage implementiert.
dies ist wichtig da ich das RenderedImage Objekt für die ImageIO.write methode brauche.
da ich später folgendes machen will:
Java:
try {
BufferedImage image = ImageIO.read( file );
ImageIO.write( image, "gif", file2);
} catch( IOException ex){
ex.printStackTrace();
}
die ImageIO.write Methode fordert als erstes Argument ein Rendered Objekt.
Das gif das in einer neuen Datei gespeichert wird, sollte dann natürlich auch beim öffnen,
wieder funktionieren, also animiert und nicht nur ein Bild der Animation anzeigen.
Zuletzt bearbeitet: