BufferedImage aus einem ByteArray erzeugen

lazydog

Mitglied
Hallo,

wie kann ich aus einem byte[] ein BufferedImage erzeugen und dies dann auch noch erfolgreich zur Anzeige bringen? Da ich keine bessere Idee hatte, bin ich erst einmal den Umweg über:

Image img = getToolkit().createImage(bytes);

gegangen und habe das ganze dann in ein BufferedImage gemalt. Grundsätzlich scheint das auch zu funktionieren, das Bild wird allerdings nur gelegentlich angezeigt. Das BufferedImage brauche ich, da ich das Image auch noch transformieren muss

vielen Dank für jede Hilfe

lazydog
 
Hallo!

Also wenn du das komplette Bild (Jpeg) im byte[] hast, dann kannst du auch via
Java:
byte[] imageData = ...;
BufferedImage image = ImageIO.read(new ByteArrayInputStream(imageData));
eine BufferedImage Repräsentation davon bekommen.

Gruß Tom
 
Schade, ich dachte damit wärs erledigt gewesen. Leider habe ich nun hässliche Speicherprobleme. Gibt es im Umfeld von ImageIO.read() noch irgendwelche Optionen?

Gruß

lazydog
 
Hallo,

ich habe jetzt auch das Speicherproblem in den Griff bekommen. So wie folgt funktioniert alles prächtig:

Code:
BufferedImage bim1 = ImageIO.read(new ByteArrayInputStream(bytes));
			
int w = bim1.getWidth(),
     h = bim1.getHeight();
			
BufferedImage bim2 = new BufferedImage( w, h, BufferedImage.TYPE_INT_ARGB );
Graphics2D g2 = (Graphics2D) bim2.createGraphics();
			
g2.drawImage(bim1, 0, 0, this);

Bleibt aber bei mir die Frage: Warum? :confused:

Gruß

lazydog
 

Neue Beiträge

Zurück