Bild in ein Byte Array schreiben

sand13r

Erfahrenes Mitglied
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 :D für euch mein ich jetzt
:D


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...

Code:
      byte[] buf = new byte[4096];



ich wäre euch wirklich über einen vorschlag dankbar

greetz sand13r
 
Hallo!

Schau mal hier:
Java:
/**
 * 
 */
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
 
Hallo Thomas,

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

keep up the great helping

greetz sand13r
 

Neue Beiträge

Zurück