Hi,
obige Funktion bereitet mir Sorgen. Ich lese Images ein (jpg,png,gif), und nach einer nicht erkennbaren Systematik fliegt für manche Bilder eine Exception beim read:
14:25:22,288 ERROR [STDERR] javax.imageio.IIOException: Unsupported Image Type
14:25:22,290 ERROR [STDERR] at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
14:25:22,291 ERROR [STDERR] at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
14:25:22,292 ERROR [STDERR] at javax.imageio.ImageIO.read(Unknown Source)
14:25:22,293 ERROR [STDERR] at javax.imageio.ImageIO.read(Unknown Source)
Bilder sind unterschiedlichster Herkunft (Photshop o.ä.) - manche gehen durch, mache nicht. Manche erst, wenn ich sie erneut mit einem anderen Bildbearbeiter neu abspeichere... (nur jpegs). Aber andere Tools/Betrachter öffnen alles und zeigen Bilder an.
Ist diese Funktion anfällig für zusätziche Daten, spezielle Metatags o.ä.?
Dabei ist imageDataGot ein byte[].
Ich verzweifle noch. Vielleicht weiß jeman Rat. Oder kann andere Image-libraries empfehlen?
Dank, dasjoerch
obige Funktion bereitet mir Sorgen. Ich lese Images ein (jpg,png,gif), und nach einer nicht erkennbaren Systematik fliegt für manche Bilder eine Exception beim read:
14:25:22,288 ERROR [STDERR] javax.imageio.IIOException: Unsupported Image Type
14:25:22,290 ERROR [STDERR] at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
14:25:22,291 ERROR [STDERR] at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
14:25:22,292 ERROR [STDERR] at javax.imageio.ImageIO.read(Unknown Source)
14:25:22,293 ERROR [STDERR] at javax.imageio.ImageIO.read(Unknown Source)
Bilder sind unterschiedlichster Herkunft (Photshop o.ä.) - manche gehen durch, mache nicht. Manche erst, wenn ich sie erneut mit einem anderen Bildbearbeiter neu abspeichere... (nur jpegs). Aber andere Tools/Betrachter öffnen alles und zeigen Bilder an.
Ist diese Funktion anfällig für zusätziche Daten, spezielle Metatags o.ä.?
Code:
ByteArrayInputStream imageDataStream = new ByteArrayInputStream(imageDataGot);
try
{
image = ImageIO.read(imageDataStream);
} catch (IOException e)
{
this.logger.log(Level.WARNING, e.getMessage());
}
Dabei ist imageDataGot ein byte[].
Ich verzweifle noch. Vielleicht weiß jeman Rat. Oder kann andere Image-libraries empfehlen?
Dank, dasjoerch