2012-10-15 61 views
13

我使用png軟件包將PNG加載爲光柵圖像,然後繪製它們。 PNG來自一個在線資源,即維基百科。我可以得到以下工作:直接從URL加載PNG文件

library(png) 

pngURL <- "http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Flag_of_Afghanistan.svg/150px-Flag_of_Afghanistan.svg.png" 

# Works: 
download.file(pngURL, "temp.png", mode = "wb") 
localPNG <- readPNG("temp.png") 
plot(1) 
rasterImage(localPNG, 0.8, 0.8, 1.2, 1.2) 

然而,而不使用download.file()存儲PNG本地,然後重新加載它,這將是最好直接從URL加載PNG。然而,這不起作用:

# Does not work: 
internetPNG <- readPNG(pngURL) 

,因爲它導致

Error in readPNG(pngURL) : 
    unable to open http://upload.wikimedia.org/wiki... 

沒有人有如何得到這個工作,還是有特殊原因R將不會加載這個PNG建議從一個URL?

在此先感謝。

+1

每當你在一個問題中說「X does not work」,告訴我們更多。你是否收到錯誤,在這種情況下將其發佈到問題中。你沒有得到任何錯誤?在這種情況下,你爲什麼認爲X不起作用? – Spacedman

+0

好點,@Spacedman。編輯帖子。 – isDotR

回答

15

RCurl包中使用getURLcontent

library(RCurl) 
myurl <- "http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Flag_of_Afghanistan.svg/150px-Flag_of_Afghanistan.svg.png" 
my_image <- readPNG(getURLContent(myurl)) 
+1

適合我... –

+1

也適用於我。 RCurl解決了很多問題。謝謝! – isDotR

+0

如果我只想下載它,我該怎麼辦? –