2010-10-21 17 views
14

मेरे पास मेरे वेब एप्लिकेशन में सर्वलेट है जो छवियों की सेवा करता है, और जब मैं ब्राउज़र छवियों के साथ उन यूआरएल पर जाता हूं तो सर्वर सही तरीके से होते हैं। तब मेरे पास यह अन्य सर्वलेट है जो छवियों का आकार बदलता है, विचार है कि आकार बदलने के लिए यूआरएल द्वारा छवि प्राप्त करें और फिर छवि का आकार बदलें। लेकिन किसी कारण से सभी निम्नलिखित विधियां शून्य हो जाती हैं, लेकिन जब मैं ब्राउज़र के साथ दिए गए यूआरएल पर जाता हूं, तो छवि सही ढंग से दिखायी जाती है।मैं जावा में यूआरएल से छवि कैसे पढ़ सकता हूं?

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); 
+0

क्या आपने अभी कोशिश की है: imageURL.openStream() यह देखने के लिए कि क्या यह नेटवर्क कनेक्शन समस्या नहीं है (ब्राउज़र कनेक्ट है लेकिन JVM नहीं) – Vinze

उत्तर

22
URL url = new URL("http://www.digitalphotoartistry.com/rose1.jpg"); 
Image image = ImageIO.read(url); 

या

URL url = new URL("http://www.digitalphotoartistry.com/rose1.jpg"); 
java.awt.Image image = java.awt.Toolkit.getDefaultToolkit().createImage(url); 

अद्यतन:

इस कोड मेरे लिए काम करता अपने 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); 
} 

उत्पादन:

[email protected]: type = 5 ColorModel: #pixelBits = 24 numComponents = 3 col 
or space = [email protected] transparency = 1 has alpha = fa 
lse isAlphaPre = false ByteInterleavedRaster: width = 553 height = 737 #numDataE 
lements 3 dataOff[0] = 2 
+1

जैसा कि आप देख सकते हैं कि मैंने कोशिश की है, लेकिन यह शून्य हो गया। – newbie

+0

@newbie @ टीजे। पाउडर मैंने उस चीज़ को याद किया :), बीटीडब्ल्यू आपने यूआरएल की जांच की है? मेरा कोड काम कर रहा है .. –

+0

@newbie: अन्य यूआरएल के साथ प्रयास करें, उदाहरण के लिए 'fullUrl = "http://www.digitalphotoartistry.com/rose1.jpg" सेट करें; –

0

the docs से:

कोई पंजीकृत ImageReader दावों जिसके परिणामस्वरूप धारा को पढ़ने के लिए सक्षम होने के लिए है, तो null दिया जाता है।

क्या यह हो सकता है कि आपके पास छवि प्रकार के लिए ImageReader पंजीकृत नहीं है?

+0

मुझे पता चला कि सर्वलेट प्राप्त करने वाली छवि नहीं थी छवि की सेवा करने वाले सर्वलेट तक पहुंच अधिकार हैं, इसलिए परिणाम हमेशा शून्य था। – newbie

+0

@newbie: विषम, मैं एक 'IOException' की उम्मीद करता। –

संबंधित मुद्दे