Załaduj obraz ze strony internetowej

Próbuję dodać kilka obrazów struktury chemicznej do niektórych utworzonych przeze mnie wątków. Korzystam z bazy danych ACToR, aby uzyskać dostęp do struktur chemicznych. Na przykład:

(http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7)

Dobrą stroną tej witryny jest możliwość zmiany rozmiaru i zawartości chemicznej w adresie URL, dzięki czemu mogę zautomatyzować pobieranie obrazów. Moją nadzieją było przechowywanie obiektu zawierającego numery CAS, a następnie iterowanie numerów CAS w celu utworzenia wykresów.

Na przykład:

library(png)
casnums <- ("80-05-7","77-40-7","1478-61-1")
image.list <- list()
for(cas in casnums){
  image.list[[cas]] <- readPNG(paste0("http://actor.epa.gov/actor/image?format=png%3Aw1000%2Ch1000&casrn=",cas))
}

Próbowałem użyćreadPNG zpng pakiet i próbował użyćrgdal pakiet. Niestety, o ile wiem, ACToR będzie generować obrazy tylko w formacie png lub jpeg - więc nie mogę użyćgrImport pakiet do czytania obrazów wektorowych.

Naprawdę mam nadzieję znaleźć rozwiązanie, w którym nie muszę ręcznie pobierać każdego obrazu - jest ich wiele. Byłbym otwarty na rozwiązanie, w którym R idzie i pobiera obrazy do folderu, a potem mógłbym użyć czegoś takiego jakpng pakiet lubrgdal pakiet, aby załadować obraz i wydrukować je.

W odpowiedzi na @ialm: Oto, co próbowałem po pierwszym komentarzu:

> download.file(url="http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7",destfile="test.png")
trying URL 'http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7'
Content type 'image/png' length 200 bytes
opened URL
downloaded 6691 bytes

Warning message:
In download.file(url = "http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7",  :
  downloaded length 6691 != reported length 200

Gdy otwieram obraz, jest to tylko 7 KB i otrzymuję komunikat śledzenia w przeglądarce obrazów: „Przeglądarka fotografii systemu Windows nie może otworzyć tego obrazu, ponieważ plik wydaje się być uszkodzony, uszkodzony lub jest zbyt duży”.

Powinienem zauważyć, że korzystam z systemu Windows 7 (wbrew mojej woli). Próbowałem również użyć zarówno RStudio, jak i R. RStudio dał mi komunikat ostrzegawczy, a R nie - ale R stworzył coś, co wygląda na ten sam plik (7 KB) i nadal się nie otwiera.

W odpowiedzi na @Greg Snow: Aby dodać trochę kontekstu, uruchomiłem następujące polecenie ze świeżej konsoli R w RStudio. Użyłem 64-bitowego Rv3.0.1 i 64-bitowego RStudio v0.97.551.

> library(png)
> search()
 [1] ".GlobalEnv"        "package:png"       "tools:rstudio"     "package:stats"     "package:graphics"  "package:grDevices"
 [7] "package:utils"     "package:datasets"  "package:methods"   "Autoloads"         "package:base"     
> con <- url("http://actor.epa.gov/actor/image?format=png%3Aw1000%2Ch1000&casrn=1478-61-1",open='rb')
> rawpng <- readBin(con, what='raw', n=1e6)
> close(con)
> png1 <- readPNG(rawpng)
Error in readPNG(rawpng) : libpng error: bad adaptive filter value
> ls()
[1] "con"    "rawpng"

questionAnswers(3)

yourAnswerToTheQuestion