2010-10-21 17 views
14

Web uygulamasında resim sunan bir sunucu var ve tarayıcıları olan bu URL'leri ziyaret ettiğimde sunucu doğru. Daha sonra görüntüleri yeniden boyutlandıran bu diğer sunucu uygulamasına sahip olursak, görüntüyü yeniden boyutlandırmak ve yeniden boyutlandırmak için görüntüyü yeniden boyutlandırmak. Ancak bazı nedenlerden ötürü, aşağıdaki yöntemler null değerini döndürür, ancak tarayıcı ile verilen URL'yi ziyaret ettiğimde, resim doğru şekilde gösterilir.Java'daki URL'den görüntüyü nasıl okuyabilirim?

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

sadece bir ağ bağlantısı sorunu olup olmadığını görmek için imageURL.openStream() yöntemini denediniz mi (tarayıcıya bağlanın, ancak JVM'yi değil) – Vinze

cevap

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

veya

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

Güncelleme: Bu kod benim için çalışıyor

URL kontrol etmeyi deneyin .

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); 
} 

çıkışı:

[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

Bunu gördüğünüz gibi, ancak bunu denedim, null. – newbie

+0

@newbie @ T.J. Kalabalık o şeyi özledim :), btw url'yi kontrol ettin mi? benim kodum gibi çalışıyor .. –

+0

@newbie: diğer url'lerle çalışın, örneğin set 'fullUrl =" http://www.digitalphotoartistry.com/rose1.jpg "; –

0

the docs Gönderen: hayır kayıtlı ImageReader iddialar çıkan akışı okumak için muktedir olursa

, null döndürülür.

Resim türü için kayıtlı ImageReader olabilir mi?

+0

Servlet görüntüsünün alınmadığını öğrendim Resme hizmet veren sunucuya erişim haklarına sahip olursunuz, sonuç her zaman boş olur. – newbie

+0

@newbie: Tuhaf, bir "IOException" beklerdim. –

İlgili konular