Подтвердить что ты не робот

Загрузка PNG файлов прямо из URL-адреса

Я использую пакет png для загрузки PNG в виде растровых изображений, а затем их построения. 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, а затем для его повторной загрузки, было бы предпочтительнее загрузить PNG непосредственно из URL-адреса. Однако это не работает:

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

Как результат:

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

Есть ли у кого-нибудь предложения о том, как заставить это работать, или есть конкретные причины, по которым R не будет загружать этот PNG из URL-адреса?

Спасибо заранее.

4b9b3361

Ответ 1

Используйте getURLcontent в пакете 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))