BufferedImage to Bytes

Status
Nicht offen für weitere Antworten.
P

Pfeiffî

Gast
Hallo, etwas für Cracks!
wie schaffe ich es ein BufferedImage in die Bytes zu zerlegen, um es über eine ZipOutputstream im Servlet an den Client zu senden.
Bisher mache ich das so, ich schreibe es als File auf Platte des Servers und hole es dann dort wieder ab, aber das kann es ja auch nicht sein, unter umständen gibt es dann dort Dateileichen.

Bisher so:

Code:
try {
// Schreiben auf Platte des Servers   
ImageIO.write(iobj.getBufImage(), "png", new File(iobj
                     .getBufImageName()));
            

               iobj.getBufImage().toString().getBytes();
            } catch (IOException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            }

            // -----------ZIP-PACK-SCHLEIFE--IMAGE-DATEI--------
//holen von Platte des Servers - wie geht das anders ?????
            fis = new FileInputStream(iobj.getBufImageName());
            // das File wieder löschen
            File xx = new File(iobj.getBufImageName());
            xx.delete();

            buf = new byte[1024];

            entry = new ZipEntry(iobj.getBufImageName());
            out.putNextEntry(entry);

            len = 0;
            while ((len = fis.read(buf)) > 0) {
               out.write(buf, 0, len);
            }
            fis.close();
 

The_S

Top Contributor
Ein BufferedImage hat in diesem Sinne keine "bytes", da es einfach ein Bild OHNE Format ist. Jenachdem in welchem Format das BufferedImage abgespeichert wird, sehen die bytes ja unterschiedlich aus. Du könntest aber ImageIO#write einen eigenen FileOutputStream übergeben, welcher dann die bytes aufnimmt.
 

Marco13

Top Contributor
Wenn du die daten in einen FileOutputStream schreiben kannst, solltest du einfach "File" durch "Zip" ersetzen können . Stream ist Stream :roll:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben