How to directly read an image file from a url addr

2019-04-19 14:19发布

问题:

I'm trying to directly load a .jpeg image from a url address. I'm wondering if there is a basic way to do this by using a url connection.

I first tried:

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 seems to be along the same lines, but for a .png file. I tried to adapt to a .jpeg, but also got an error.

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.

Any help would be greatly appreciated!

回答1:

Just save the image as a temporary file:

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


标签: r url jpeg