2013-07-29 8 views
10

Próbuję bezpośrednio załadować obraz .jpeg z adresu URL. Zastanawiam się, czy istnieje podstawowy sposób, aby to zrobić, korzystając z połączenia url.Jak bezpośrednio odczytać plik obrazu z adresu URL w R

raz pierwszy próbowałem:

require(biOps) 
con <- url("http://upload.wikimedia.org/wikipedia/commons/9/95/Apollonian_spheres.jpg") 
pic <- readJpeg(con) 
#Error in readJpeg(con) : Cannot open file. 

This other question wydaje się według tych samych zasad, ale dla pliku .png. Próbowałem dostosować się do pliku .jpeg, ale również wystąpił błąd.

require(biOps) 
require(RCurl) 
myurl <- "http://upload.wikimedia.org/wikipedia/commons/9/95/Apollonian_spheres.jpg" 
pic <- readJpeg(getURLContent(myurl)) 
#Error in readJpeg(getURLContent(myurl)) : Cannot open file. 

Każda pomoc będzie bardzo ceniona!

Odpowiedz

18

Wystarczy zapisać obraz jako plik tymczasowy:

myurl <- "http://upload.wikimedia.org/wikipedia/commons/9/95/Apollonian_spheres.jpg" 
z <- tempfile() 
download.file(myurl,z,mode="wb") 
pic <- readJPEG(z) 
file.remove(z) # cleanup 
+0

Thanks Thomasa. Czy możesz również podać sposób na usunięcie pliku 'z' z wnętrza R po załadowaniu? –

+0

@Marcintbox Po prostu go dodał. – Thomas

+0

świetnie! Wielkie dzięki. Twoje zdrowie. –