17 Stimmen

Laden von PNG-Dateien direkt von der URL

Ich verwende die png Paket, um PNGs als Rasterbilder zu laden und sie dann zu plotten. Die PNGs stammen aus einer Online-Quelle, nämlich aus Wikipedia. Ich kann das Folgende zum Laufen bringen:

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)

Anstatt jedoch die download.file() um das PNG lokal zu speichern und es dann erneut zu laden, wäre es besser, das PNG direkt von der URL zu laden. Dies funktioniert jedoch nicht:

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

Da es zu einer

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

Hat jemand Vorschläge, wie man dies zum Funktionieren zu bekommen, oder gibt es bestimmte Gründe, dass R nicht diese PNG von einer URL laden?

Vielen Dank im Voraus.

22voto

mnel Punkte 109980

Verwenden Sie getURLcontent im RCurl paquete.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X