2010-04-18 5 views

Antwort

4

Sie würden es auf diese Weise tun

Image img = ImageIO.read(new ByteArrayInputStream(imageBytes)); 
ImageIcon imgIcon = new ImageIcon(img); 

JLabel label = new JLabel(imgIcon); 

aber die JPG2000 Decoder nicht mit Standard-SDK geliefert wird, sollten Sie here (Java Advanced Imaging) und verwenden Sie den richtigen Decoder für das Format Kopf.

+0

Ich habe das Jai heruntergeladen (von der Java-Site, nicht von Ihrem Link, weil ich die Jai-Datei nicht finden kann, um es herunterzuladen), aber als ich versuchte, Ihren Weg zu verwenden, um das Bild zu lesen. Ich habe die Null-Ausnahme, ich weiß nicht warum. sogar, dass ich die JAR-Dateien zu meinem Projekt hinzugefügt habe (referenzieren sie). Also, was die Lösung dafür? – Q8Y

3

Anscheinend wurde die Unterstützung von jpeg2000/(.jp2) -Dateien aus Java Advanced Imaging (JAI) entfernt.

Indem ich JAI 1.1.3 deinstalliere und die ältere Version 1.1 installiere, lese ich jetzt .jp2-Dateien und sehe den Null-Zeiger nicht mehr.

Version 1.1 ist hier verfügbar. http://download.java.net/media/jai-imageio/builds/release/1.1/

Version 1.1 Listen Codecs für - G3Fax g4fac jiio jp2k JPEG und PNG

+0

Link ist tot, hier ist ein neuer Link zum Orakel-Archiv http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-java-client-419417.html – Kalaschni

2

Die einzigen Optionen, die ich kenne alle basierend auf jj2000 sind.

Jai-ImageIO-Core unterstützt durch eine zusätzliche Dritt Modul:

https://github.com/stain/jai-imageio-core

https://github.com/jai-imageio/jai-imageio-jpeg2000

Es wird sich mit ImageIO registrieren und Sie werden dann in der Lage sein, lese jpeg2000-Dateien wie jedes png, bmp oder jpeg.

Obwohl jj2000 an sich eine Option ist, ist die api nicht für den täglichen Gebrauch gedacht.

Weitere Optionen sind JMRTD, die eine eigene Verpackung für jj2000, oder ein kommerzielles Angebot, JDeli bietet.