Загрузить изображение с сайта
Я пытаюсь добавить изображения химической структуры к некоторым графикам, которые я создал. Я использую базу данных ACToR для доступа к химическим структурам. Например:
(http://actor.epa.gov/actor/image?format=png%3Aw250%2Ch250&casrn=80-05-7)
Хорошая вещь об этом сайте - вы можете изменить размер и химическое вещество в URL, чтобы я мог автоматизировать захват изображений. Я надеялся сохранить объект, содержащий номера CAS, а затем перебрать номера CAS, чтобы составить графики.
Например:
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))
}
Я пытался использоватьreadPNG
изpng
пакет, и попытался использоватьrgdal
пакет, а также. К сожалению, насколько я могу судить, ACToR будет генерировать изображения только в формате PNG или JPEG, поэтому я не могу использоватьgrImport
пакет для чтения векторных изображений.
Я действительно надеюсь найти решение, при котором мне не нужно вручную загружать каждое изображение - их много. Я был бы открыт для решения, где R идет и загружает изображения в папку, тогда я мог бы использовать что-то вродеpng
пакет илиrgdal
Пакет для загрузки изображения и построения их.
В ответ на @ialm: Вот что я попробовал после вашего первого комментария:
> 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
Когда я открываю изображение, его размер составляет всего 7 КБ, и в средстве просмотра изображений появляется следующее сообщение: «Средство просмотра фотографий Windows не может открыть это изображение, поскольку файл кажется поврежденным, поврежденным или слишком большим».
Я должен отметить, что я (против своей воли) использую Windows 7. Я также попытался использовать и RStudio, и R. RStudio дал мне предупреждающее сообщение, а R - нет, но R создал то, что выглядит как один и тот же файл (7 КБ) и до сих пор не открывается.
В ответ на @Greg Snow: просто чтобы добавить контекст, я запустил следующее из свежей консоли R в RStudio. Я использовал 64-битный Rv3.0.1 и 64-битный 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"