J'ai une servlet dans mon application Web qui sert des images, et lorsque je visite des URL avec des images de navigateur, le serveur est correctement. Ensuite, j’ai cet autre servlet qui redimensionne les images, l’idée est de visiter get image par URL dans le redimensionnement du servlet, puis de redimensionner l’image. Mais pour une raison quelconque, toutes les méthodes suivantes renvoient null, mais lorsque je visite une URL donnée avec un navigateur, l’image est affichée correctement.
URL imageURL = new URL(fullUrl);
// Case 1
RenderedImage img = ImageIO.read(imageURL);
// Case 2
BufferedImage img = JAI.create("url", imageURL).getAsBufferedImage();
// Case 3
Image img = Java.awt.Toolkit.getDefaultToolkit().getDefaultToolkit().createImage(imageURL);
URL url = new URL("http://www.digitalphotoartistry.com/rose1.jpg");
Image image = ImageIO.read(url);
ou
URL url = new URL("http://www.digitalphotoartistry.com/rose1.jpg");
Java.awt.Image image = Java.awt.Toolkit.getDefaultToolkit().createImage(url);
Mettre à jour:
Ce code fonctionne pour moi Essayez de vérifier votre URL.
public static void main(String[] args) throws Exception {
URL imageURL = new URL("http://www.digitalphotoartistry.com/rose1.jpg");
// Case 1
RenderedImage img = ImageIO.read(imageURL);
System.out.println(img);
}
sortie:
BufferedImage@e80a59: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 col
or space = Java.awt.color.ICC_ColorSpace@1ff5ea7 transparency = 1 has alpha = fa
lse isAlphaPre = false ByteInterleavedRaster: width = 553 height = 737 #numDataE
lements 3 dataOff[0] = 2
De les docs :
Si aucune variable enregistrée
ImageReader
ne prétend pouvoir lire le flux résultant,null
est renvoyée.
Se pourrait-il que vous n'ayez pas enregistré ImageReader
pour le type d'image?