2012-10-15 8 views
13

Sto utilizzando il pacchetto png per caricare i PNG come immagini raster e quindi per tracciarli. I PNG provengono da una fonte online, vale a dire, Wikipedia. Posso ottenere il seguente al lavoro:Caricamento di file PNG direttamente dall'URL

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) 

Tuttavia, invece di utilizzare download.file() per memorizzare il PNG a livello locale, poi ri-caricarlo, sarebbe preferibile per caricare il PNG direttamente dal URL. Tuttavia, questo non funziona:

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

Come si traduce in

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

Qualcuno ha suggerimenti su come arrivare a questo lavoro, o vi sono particolari motivi che R non caricare questo PNG da un URL?

Grazie in anticipo.

+1

Ogni volta che dici "X non funziona" in una domanda, dicci di più. Ricevi un errore, in tal caso inseriscilo nelle domande. Non ricevi errori? In tal caso, perché pensi che X non funzioni? – Spacedman

+0

Buon punto, @Spacedman. Modificato il post. – isDotR

risposta

15

Utilizzare getURLcontent nel pacchetto RCurl.

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

funziona per me ... –

+1

Funziona anche per me. RCurl risolve molti problemi. Grazie! – isDotR

+0

Cosa devo fare se voglio solo scaricarlo? –