Ich möchte ein Bild lesen, um es mit Awt und Apache Commons Imaging, früher bekannt als Apache Commons Sanselan zu skalieren Ich kann das Bild nicht skalieren, aber ich kann es sehen im Browser richtig als jpg ohne jedes Problem. Erhalten des Bildinfo mitJava kann ein Bild mit javax.imageio oder Sanselan
Sanselan.getMetadata(fileData)
ich diese Informationen zu erhalten:
No Exif metadata.
Photoshop (IPTC) metadata:
Der Code
public static byte[] scale(byte[] fileData, int width, int height) {
ByteArrayInputStream in = new ByteArrayInputStream(fileData);
try {
BufferedImage img = javax.imageio.ImageIO.read(in);
....
return buffer.toByteArray();
} catch (IOException e1) {
System.out.println ("e1 -> " + e1.getMessage());
try {
BufferedImage img = Sanselan.getBufferedImage(in);
} catch (ImageReadException | IOException e2) {
System.out.println ("e2 -> " + e2.getMessage());
}
}
return fileData;
}
aber ich habe diese Ausnahmen:
e1 -> Unsupported Image Type
e2 -> Can't parse this format.
Sie sind sehr viel over-Tagging. Was hat dieses todo mit java-io oder awt? Dann: Welche Art von Bilddatei haben Sie versucht zu laden? Hast du andere Formate getestet? Sind Sie sicher, dass die Datei ein gültiges Bild ist? – GhostCat
Das Problem scheint ein JPEG zu sein, das der interne 'JPEGImageReader' nicht lesen kann. Kannst du das problematische Bild anhängen? Sie könnten auch versuchen, mein [TwelveMonkeys ImageIO JPEG-Plugin] (https://github.com/haraldk/TwelveMonkeys#jpeg) hinzuzufügen, das CMYK-JPEGs und andere Formate unterstützt, die der interne Leser nicht lesen kann. – haraldK