ImageIO.read () dreht immer mein hochgeladenes Bild

9

Ich möchte eine Webanwendung erstellen, mit der Benutzer ihr Bild auf den Server hochladen können. Wenn sie auf Senden klicken, wird ihr Bild auf den Server hochgeladen (mehrteilig). Vor dem Speichern möchte ich eine Operation mit dem Bild durchführen, also entschied ich mich, zu verwenden ..

  

ImageIO.read (InputStream)

um das BufferedImage-Objekt zu erhalten

Hier ist der Code:

%Vor%

Das Problem ist, wenn ich versuche, ein Bild hochzuladen, dessen Höhe mehr als Breite wie 3264 x 2448 (Höhe x Breite), das Ergebnis ist immer ein Bild, das gedreht wurde (2448 x 3264).

Gibt es eine Lösung, um dieses Problem zu lösen?

Ist das ein Fehler oder eine definierte API-Spezifikation?

Thx.

PS. Entschuldigung für mein Englisch: D

    
kp_ping 12.04.2013, 18:53
quelle

2 Antworten

5

ImageIO.read () kann die Ausrichtung des Bildes nicht lesen, wenn es mit einem mobilen Gerät aufgenommen wurde.

Ich habe Metadaten-Extractor verwendet, um Metadaten zu lesen, ich denke, es ist eine gute Lösung: github.com/drewnoakes/metadata-extractor/wiki

%Vor%

Orientierungsfeld im exif-Verzeichnis lesen:

%Vor%

(Rotation ist eine Klasse aus dem org.imgscalr.Scalr-Framework, das ich verwende, um das Bild zu drehen).

    
Paolo Biavati 28.03.2015 16:40
quelle
0

Ziemlich interessantes Problem ... Sie können versuchen, es zu beheben, indem Sie eine Überprüfung der Bildbreite und -höhe auf 2448 bzw. 3264 vornehmen und dann einfach seine Breite und Höhe vertauschen

Verwenden Sie den folgenden Code:

%Vor%     
Bond - Java Bond 12.04.2013 19:29
quelle