# Bild in ein Byte Array schreiben



## sand13r (26. Oktober 2006)

Hallo,

da mir bei meinen anderen zwei Threads leider keiner helfen mag :-(
muss ich es wieder anders versuchen.. bin aber wieder auf ein Problem gestossen das aber eigentlich nicht schwer sein dürfte  für euch mein ich jetzt



es geht darum eine bild datei in ein Byte[] array zu speichern... den anfang hab ich eigentlich denk i mal schon...aber wie bekomme ich da jetzt die jpg oder gif.. oder wie auch immer bilddatei rein damit ich sie endlich verschicken kann...


```
byte[] buf = new byte[4096];
```



ich wäre euch wirklich über einen vorschlag dankbar

greetz sand13r


----------



## Thomas Darimont (26. Oktober 2006)

Hallo!

Schau mal hier:

```
/**
 * 
 */
package de.tutorials;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.imageio.ImageIO;

/**
 * @author Thomas.Darimont
 */
public class ImageToByteArrayExample {

  /**
   * @param args
   */
  public static void main(String[] args) throws Exception {
    File file = new File("c:/Winter.jpg");
    loadFileFromPersistentStore(file);

    BufferedImage bufferedImage = ImageIO.read(file);
    loadImageFromMemory(bufferedImage);
  }

  /**
   * @param file
   * @throws IOException
   */
  private static void loadImageFromMemory(BufferedImage image) throws IOException {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    ImageIO.write(image, "jpeg", byteArrayOutputStream);
    byte[] imageData = byteArrayOutputStream.toByteArray();
    System.out.println(imageData.length);
  }


  /**
   * @throws Exception
   * @throws FileNotFoundException
   */
  private static void loadFileFromPersistentStore(File file) throws Exception, FileNotFoundException {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    copyStream(new FileInputStream(file), byteArrayOutputStream);
    byte[] data = byteArrayOutputStream.toByteArray();
    System.out.println(data.length);
  }


  private static void copyStream(InputStream src, OutputStream dest) throws Exception {
    byte[] buffer = new byte[16384];
    int len;
    while ((len = src.read(buffer)) > 0) {
      dest.write(buffer, 0, len);
    }
    src.close();
    dest.close();
  }
}
```

Gruß Tom


----------



## sand13r (27. Oktober 2006)

Hallo Thomas,

vielen vielen Dank für deine super antwort,
ich benutze das jetzt ich hoffe es stört dich nicht 
nochmals vielen vielen Dank!

keep up the great helping

greetz sand13r


----------

