Image in gif umwandeln

Status
Nicht offen für weitere Antworten.
T

Tina25

Gast
Hallo,

ich habe aus einem JPanel ein Image erzeugt. Nun möchte ich dieses Image in ein Gif umwandeln, um es als Anhang in einer E-Mail zu versenden.

Meine Fragen zu:

Wie wandle ich ein Image in ein Gif um ?

Ich möchte das gif nicht als Datei auf der Festplatte speichern, sondern nur im Programm erzeugen ... Ist das möglich ?
 

L-ectron-X

Gesperrter Benutzer
Tina25 hat gesagt.:
Ich möchte das gif nicht als Datei auf der Festplatte speichern, sondern nur im Programm erzeugen ... Ist das möglich ?
???:L Etwas im Gif-Format ist aber bereits eine Datei.
Ein Image (Abbild) ist solange es im Speicher liegt eine Reihe von Bits und Bytes...
Erst wenn es dauerhaft gespeichert wird, ist das Format interessant.

Übrigens: Sehr verdächtiger Nickname... :roll:
 
G

Gast

Gast
gif89 ist tot. steig auf png um. gif ist eh kacke. wenn ein kunde gif will, zweifel seine intelligenz offen an.
 
T

Tina25

Gast
ich habe mir jetzt eine Methode zur JPanel -> Gif - Erstellung geschrieben. Leider gibt es hier ein ziemliches Problem:

Das gif kann nur erstellt werden, wenn das JPanel auch wirklich auf dem Bildschirm sichbar ist ?!

Wenn ich vor dem Methodenaufruf folgendes mache:

JFrame f = new Frame();
f.getcontentPane().add(panel);
f.setVisible(true);

dann funktioniert es ... Das Gif muss aber unbedingt ohne diesen Umweg erstellt werden muss.


Hier meine Methode:

public static void createGif(JPanel panel, String fileName){

int breite = panel.getWidth();
int hoehe = panel.getHeight();

BufferedImage buf_image = new BufferedImage(breite,hoehe,BufferedImage.TYPE_INT_RGB);

synchronized(panel.getTreeLock()){
panel.paintAll(buf_image.getGraphics());
}

try{
ImageIO.write(buf_image,"gif",new File(fileName));
buf_image.flush();
}

catch(IOException e){
System.out.print(e.getCause());
}

}


Was mache ich falsch ? Habe schon etliche Stunden mit diesem Problem verbracht und finde einfach keine Lösung.

Bin für jede Hilfe dankbar !

Grüße, Tina
 

Kim Stebel

Bekanntes Mitglied
ersetze mal "System.out.print(e.getCause());" durch e.printStackTrace() und poste die Ausgabe hier.
 

The_S

Top Contributor
Zeichne das JPanel auf das BufferedImage über SwingUtilities.paintComponent . Dann sollte es gehen.
 
G

Gast

Gast
Nochmal genauer:

Wenn ich das Panel nicht auf einem extra JFrame anzeigen lasse, und die Methode

createGif(JPanel panel, String fileName)

aufrufe, dann ist das panel in der Methode überhaupt nicht vorhanden. D.h. diese Variablen:

int breite = panel.getWidth();
int hoehe = panel.getHeight();

sind 0 !

Ein BufferedImage kann deshalb gar nicht erst erzeugt werden !

Warum ist das Panel in der Methode nicht vorhanden, obwohl ich es doch korrekt übergeben habe ??

*verzweifelt*
 
T

Tina25

Gast
so ich habe jetzt alles erdenklich mögliche ausprobiert ... langsam bin ich der Überzeugung, dass es sich hier um einen Bug handelt. Ein Panel kann anscheinend wirklich nur dann als Bild gespeichert werden, wenn es auch auf dem Bildschirm sichtbar ist. Wenn ich f.setVisible(false) setze, dann zB auch nichts gespeichert.
 

The_S

Top Contributor
Und nochmal: Verwende zum Zeichnen die SwingUtilities! So funktionierts! Und es handelt sich keinesfalls um einen Bug - Java spart sich nur den Speicher und stellt Komponenten, die nicht gerade angezeigt werden, auch nicht dar.
 

Marco13

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Verwende zum Zeichnen die SwingUtilities! So funktionierts!

Da wäre ich mir nicht so sicher. Ich glaube, mich dunkel (aber nicht 100%ig!) zu erinnern, dass eine JComponent nur gezeichnet werden kann, wenn sie "realized" ist, also tatsächlich als Unterkomponente irgendeines Top-Level-Containers (Frame z.B) auf dem Bildschirm sichtbar ist. Ich glaube, mit printComponent statt paintComponent konnte man da ein bißchen tricksen.... aber müßte man sich nochmal genauer ansehen...
 

Marco13

Top Contributor
Ah sorry - hatte das im VORletzen Beitrag übersehen - ich dachte, es ginge um einer der invoke*-Funktionen oder so, aber du meintest ja http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/SwingUtilities.html#paintComponent(java.awt.Graphics,%20java.awt.Component,%20java.awt.Container,%20int,%20int,%20int,%20int)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D BufferedReader in image umwandeln Allgemeine Java-Themen 3
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
Mozart53 JLabel nur meinen Text verschieben ohne Image Allgemeine Java-Themen 3
Y Wie bekomme ich durch getImage an das Image heran? Allgemeine Java-Themen 1
J jsch direktes streamen in ein image Allgemeine Java-Themen 11
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
T 2D-Grafik Chart als Image erstellen Allgemeine Java-Themen 3
G Image in Shape wandeln Allgemeine Java-Themen 1
T Swing Image rotieren Allgemeine Java-Themen 1
I nach Image Load in ListView, kann Ordner nicht mehr gelöscht werden Allgemeine Java-Themen 1
C pfad vom Image ausgeben lassen Allgemeine Java-Themen 5
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
M Image auslesen Allgemeine Java-Themen 2
G Pixelanzahl aus Raw Image Datei Allgemeine Java-Themen 1
H OCR und Image Processing Allgemeine Java-Themen 4
M Image für PDF nicht verfügbar - Runnable .jar Allgemeine Java-Themen 3
S BLOB Image in JSP anzeigen Allgemeine Java-Themen 5
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
K Image zu BufferedImage konvertieren Allgemeine Java-Themen 9
K Image beim catchen ist immer null Allgemeine Java-Themen 9
X Image Processing libary für JavaSE und Android Allgemeine Java-Themen 2
Crashbreaker RCP-View Image öffnen und darstellen Allgemeine Java-Themen 7
S IMAGE ARRAY laden Allgemeine Java-Themen 6
B Image oder GridControl? Allgemeine Java-Themen 8
B Image Thinning Allgemeine Java-Themen 3
A Input/Output Buffered Image zu Byte Array und zurück konvertieren Allgemeine Java-Themen 4
F Datentypen Floppy-Image-Dateisystem Allgemeine Java-Themen 5
F Image - Ausschnitt bekommen Allgemeine Java-Themen 3
J Teil eines Image/ImageIcon zeichnen Allgemeine Java-Themen 2
N Unable to convolve src image Allgemeine Java-Themen 7
H image in jtextarea/JLabel einbinden... Allgemeine Java-Themen 4
Aigu Bilderkennung / Image Analysis Allgemeine Java-Themen 2
M Nochmal I-Frame zu Image Allgemeine Java-Themen 4
M JPEG Image komprimieren Allgemeine Java-Themen 2
M Probleme mit Image Extraction aus PDF Allgemeine Java-Themen 2
V Image laden - URL über ClassLoader ermitteln Allgemeine Java-Themen 2
G sun.awt.image.OffScreenImage Serializable machen Allgemeine Java-Themen 5
G itext größe von image Allgemeine Java-Themen 2
T JPanel to Image? Allgemeine Java-Themen 6
K Image Resizer Allgemeine Java-Themen 4
D Image runterscalieren, aber schlechte Quali? Allgemeine Java-Themen 3
L Buffered Image teilweise zeichnen Allgemeine Java-Themen 6
P Image erzeugen Allgemeine Java-Themen 7
B Image libraries Allgemeine Java-Themen 3
MQue Image über Komponente Allgemeine Java-Themen 3
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P Image auf einem Panel mit null-Layout Allgemeine Java-Themen 8
E Image unterscheiden Allgemeine Java-Themen 16
E Image auf einem JLabel darstellen Allgemeine Java-Themen 3
F BufferedImage -> Image Allgemeine Java-Themen 4
E Wie bekomme ich mein Image in das Fenster Allgemeine Java-Themen 2
T Muster/Zeichen/Texterkennung auf einem Image Allgemeine Java-Themen 9
L Linien, Recktecke und Elipsen zeichnen ohne Image Allgemeine Java-Themen 2
T Disk Image Library (iso,mdf,nrg,bin) Allgemeine Java-Themen 6
S KeyListener! Image Problem! Allgemeine Java-Themen 2
S Image als Background Allgemeine Java-Themen 5
B Image(png) versenden Allgemeine Java-Themen 3
N Image -> cropImage Allgemeine Java-Themen 3
T Image mithilfe von DirectColorModel und Pixel erstellen Allgemeine Java-Themen 3
G Image in der Größe ändern Allgemeine Java-Themen 2
C probleme mit image Allgemeine Java-Themen 4
C Pixelfarbe aus einem image auslesen Allgemeine Java-Themen 6
M Image Skalieren Allgemeine Java-Themen 23
D ByteArray für Image-Icon laden. Allgemeine Java-Themen 4
T iso datei (Image) mit Java einlesen und Inhalt entpacken Allgemeine Java-Themen 3
O Image mit transparenten farben wie bei *.GIF ? Allgemeine Java-Themen 3
B Image#getScaledInstance & Graphics2D#drawImage ClassCast Allgemeine Java-Themen 3
H Speicher freigeben klappt nicht bei Image Objekten, warum? Allgemeine Java-Themen 8
H Skalieren von Image -> java.lang.OutOfMemoryError - WARUM Allgemeine Java-Themen 18
T Auf ein Image geklickt Allgemeine Java-Themen 13
J ISO image erzeugen Allgemeine Java-Themen 3
J Wie mache ich den Hintergrund einer Image durchsichtig? Allgemeine Java-Themen 7
G Aus JPanel Image Hohlen Allgemeine Java-Themen 3
S Image Datei serializieren Allgemeine Java-Themen 3
G JFrame nimmt mein Image nicht Allgemeine Java-Themen 2
F Image als GIF oder JPEG abspeichern Allgemeine Java-Themen 2
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
A verschachtelte for-Schleife in einen Stream umwandeln? Allgemeine Java-Themen 4
N Gierigen Regex in nicht-gierigen umwandeln Allgemeine Java-Themen 4
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
K HTMLEditor HTML Text in Rich Text umwandeln Allgemeine Java-Themen 14
M Rechner dez in Hex umwandeln Allgemeine Java-Themen 5
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
H Stream in ArrayList umwandeln Allgemeine Java-Themen 2
J Objekt in Bytestream umwandeln Allgemeine Java-Themen 12
B Long in einen Double umwandeln und im Label anzeigen Allgemeine Java-Themen 7
C String in Objektnamen umwandeln Allgemeine Java-Themen 3
E String in Zahl umwandeln, ohne Befehl Integer.parseInt Allgemeine Java-Themen 3
V Eingegeben String Splitten und in Integer umwandeln Allgemeine Java-Themen 2
RalleYTN Unsigned int in signed int umwandeln Allgemeine Java-Themen 8
G GUI-basiertes Java-Program in Command-line Version umwandeln Allgemeine Java-Themen 1
J .jar in .exe Umwandeln Allgemeine Java-Themen 18
JavaWolf165 JsonObject in HashMap umwandeln Allgemeine Java-Themen 16
J Umwandeln von URL zu File und danach kopieren geht nicht Allgemeine Java-Themen 1
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
T Geographische in UTM Koordinaten umwandeln Allgemeine Java-Themen 5
JG12111989 char-Array in int-Array umwandeln Allgemeine Java-Themen 27

Ähnliche Java Themen

Neue Themen


Oben