Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Image in Datenbank schreiben, habe kein FileInputStream

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127

    Image in Datenbank schreiben, habe kein FileInputStream

    Hallo,
    ich habe von einer Webcam ein Bild, das in eine Datenbank (Postgres) geschrieben werden soll. Ich bin gerade im "Model" und habe ein ImageIcon, also ein Image oder zur Not auch ein BufferedImage, aber keine Datei, bzw. URL, denn das Bild, das dort im Model ankommt, ist unter der URL ja gar nicht abrufbar => dort steht ein neues.
    Ich dachte, ich könnte irgendwie den ByteArrayInputStream nehmen, aber wie komme ich an die Bytes? Weiß jemand Rat?

    Danke,
    mamue

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2003
    Beiträge
    127
    OMG!
    Ich dachte mir, das müsste ganz einfach sein. Ich bin doch sicher nicht der Einzige, der das braucht, oder?
    Also, folgende Lösung ist (noch) ungetestet, übersetzt aber und müsste eigenlich stimmen - ist zumindest nachvollziehbar:
    Code:
    int bufferSize = 1024;
    ByteArrayOutputStream baos = new ByteArrayOutputStream( bufferSize );
    try {
      //bufferedPhoto ist BufferedImage
      ImageIO.write( bufferedPhoto, "jpeg", baos );
    } catch (IOException ioe) {
      ioe.printStackTrace();
    }
    byte[] imageBytes = baos.toByteArray(); 
    ByteArrayInputStream byteInput = new ByteArrayInputStream( imageBytes );
    //ps ist ein preparedStatement
    ps.setBinaryStream( 6, byteInput, imageBytes.length );
    Vielleicht hilft es ja jemandem.
    Geht das auch einfacher?

    mamue

    P.S.: Natürlich nicht von mir "erfunden", sondern auch nur kopiert und angepaßt.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •