web-dev-qa-db-fra.com

Comment puis-je lire une image à partir d'une URL en Java?

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);
14
newbie
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
22
Jigar Joshi

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?

0
T.J. Crowder