tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
433
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    bwagner bwagner ist offline Grünschnabel
    Registriert seit
    Aug 2010
    Beiträge
    4
    Ich habe ein Bild als byte[] vorliegen und benoetige die Angaben zu Breite und Hoehe. Im Unterschied zu der Erzeugung mittels File gibt folgender Weg Nullwerte fuer width/height.

    Code :
    1
    2
    3
    4
    5
    
        byte[] bytes = imageToByteArray();
        ByteArrayInputStream input = new ByteArrayInputStream(bytes);
        SeekableStream s = SeekableStream.wrapInputStream(input, true);
        RenderedOp image = JAI.create("stream", s);
            image.getWidth();

    Gibt es einen Weg an diese Info zu kommen ohne andere Libs wie AWT zu benutzen?

    Danke und Gruss,
    Babette
     

  2. #2
    Avatar von Billie
    Billie Billie ist offline Mitglied Platin
    Registriert seit
    Jan 2003
    Ort
    Arzl im Pitztal (Tirol)
    Beiträge
    510
    Die Frage ist in welchem Format die binärdaten vorliegen? Auf alle Fälle, folgendes Snippet legt ein Bild zuerst komplett in den Speicher und liest von dort das Bild und nicht direkt über den FileInputStream:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
            File file = new File("C:\\Temp\\SYSTEM_20101129_154536.jpg");
            InputStream is = null;
            try {
                // is = new FileInputStream(file);
                byte[] b = new byte[(int) file.length()];
                FileInputStream fis = null; 
                try {
                    fis = new FileInputStream(file);
                    fis.read(b);
                } finally {
                    if(fis != null) {
                        try {
                            fis.close();
                        } catch(IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
                is = new ByteArrayInputStream(b);
                BufferedImage bfImage = ImageIO.read(is);
                System.out.println("x=" + bfImage.getWidth() + ",y=" + bfImage.getHeight());
            } catch(Exception e) {
                e.printStackTrace();
            } finally {
                if(is != null) {
                    try {
                        is.close();
                    } catch(IOException e) {
                        e.printStackTrace();
                    }
                }
            }

    Es macht also keinen Unterschied ob ich als InputStream einen FileInputStream habe od. einen ByteArrayInputStream.
     
    Fann Ég Fjalli Fallega Steina
    Faldi Dá Alla Vildi Deim Leyna
    Huldi Dar Hellisskúta Heillasteina
    Alla Mína Una eth slegu Óskasteina

  3. #3
    bwagner bwagner ist offline Grünschnabel
    Registriert seit
    Aug 2010
    Beiträge
    4
    Danke fuer Deinen Hinweis, irgendwas scheint aber doch anders zu sein.

    Die Daten werden ueber Tomahawk t:inputFileUpload hochgeladen, liegen also als org.apache.myfaces.custom.fileupload.UploadedFile vor, dann benutze ich die Methode getBytes(), die mir ein byte[] liefert, welches ich in einen ByteInputStream packe.
     

  4. #4
    Avatar von Billie
    Billie Billie ist offline Mitglied Platin
    Registriert seit
    Jan 2003
    Ort
    Arzl im Pitztal (Tirol)
    Beiträge
    510
    Was für ein Bild wird den hochgeladen - welches Format? Ich nehme an Du hast ein Test-Bild (zB JPEG, GIF) das Du über ein HTML-Formular auswählst und an deinen Server schieckst?

    Du kannst ja im ersten Schritt das Snippet oben auf dein Test-Bild anwenden. Wenn Du dann Breite und Höhe bekommst, kannst Du den Code vielleicht so in dein Servlet übernehmen.

    Wenn Du dann keine Werte bekommst, solltest Du evtl. das byte-Array welches Dir die getBytes-Methode liefert auf die Festplatte speichern und mit deinem Test-Bild vergleichen. Eigentlich sollten diese ja 100% identisch sein und auch dein Bildbearbeitungsprogramm sollte das Bild darstellen können.
     
    Fann Ég Fjalli Fallega Steina
    Faldi Dá Alla Vildi Deim Leyna
    Huldi Dar Hellisskúta Heillasteina
    Alla Mína Una eth slegu Óskasteina

Ähnliche Themen

  1. Div mit 100% width und height
    Von socke999 im Forum CSS
    Antworten: 20
    Letzter Beitrag: 15.07.10, 05:49
  2. Layout mit 100% height und width
    Von alex130 im Forum CSS
    Antworten: 39
    Letzter Beitrag: 28.02.07, 17:15
  3. height/width - Berechnung
    Von Crach im Forum HTML & XHTML
    Antworten: 4
    Letzter Beitrag: 26.11.06, 13:03
  4. Iframe mit width und height 0
    Von gio im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 13.02.06, 21:50
  5. height und width
    Von maho15 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 18.07.02, 19:53