# Convert ImageIcon/ Image/ Graphics2D To Byte Array



## nathaniells freak (12. März 2009)

Hallo Java Coders.

Ich habe ein Problem. Ich versuche ein ImageIcon oder Image oder Graphics2D Objekt wieder zurück zu konvertieren das wieder mein Ursprungs JPEG herauskommt als Byte Array. 

Mit diesem Code erzeuge ich aus einem Byte Array ein ImageIcon:

```
byte foto[] = rss.getBytes("Bild");  // hole Byte Array aus ResultSet
java.awt.Toolkit t = java.awt.Toolkit.getDefaultToolkit();
java.awt.Image img = t.createImage(foto);
this.ImageIconBild = new ImageIcon();
this.ImageIconBild.setImage(img);
```

Danach adde ich dieses ImageIcon in ein Label und adde dann das Label zu einem Panel Code:

```
this.LabelFoto = new MyLabel(this.ImageIconBild);
this.LabelFoto.setBounds(1,1,184,169);
this.PanelBildpanel.add(this.LabelFoto);
this.PanelBildpanel.setComponentZOrder(this.LabelFoto, 0);
```

Aber wie bekomme ich über das ImageIcon wieder an mein JPEG?
Ich habe es über das ImageIcon selber probiert. Über ein Image das ich aus ImageIcon heraus erzeugen kann. Und auch über ein Graphics2D Objekt das ich über das Image erzeugen kann. 

Kein Weg den ich ausprobiert habe, hat mir wieder das JPEG erzeugt als Byte Array. 

Dabei wollte ich extra nicht über den Umweg gehen eine temporäre Datei auf der Festplatte zu erzeugen.

Weiß jemand eine funktionierende Lösung?

Danke schonmal für eure Hilfe.

Gruß Nathaniell


----------



## jb007 (12. März 2009)

Hallo Nathaniell,

ich habe nur mal kurz gegoogelt und folgenden Link gefunden:

http://www.rgagnon.com/javadetails/java-0266.html

Da gibt es auch weitere Links die z.B. zur imageIO Lib führen.
Vielleicht geht das auch damit.

Alles ohne Gewähr.
Habs leider noch nie selber gebraucht und somit auch kein eigenes Beispiel zur Hand.

Vielleicht bringt Dich das ja weiter...

Gruß Jens


----------



## procurve (12. März 2009)

Geht das nicht über einen ByteArrayOutputStream anstatt des FileOutputStreams?


----------

