This function uses the curl package or the system command curl
(whichever is available) to upload a image to https://imgur.com.
upload_imgur(
file,
key = env_option("xfun.upload_imgur.key", "9f3460e67f308f6"),
use_curl = loadable("curl"),
include_xml = FALSE
)
Path to the image file to be uploaded.
Client ID for Imgur. It can be set via either the global option
xfun.upload_imgur.key
or the environment variable
R_XFUN_UPLOAD_IMGUR_KEY
(see env_option()
). If neither is set,
this uses a client ID registered by Yihui Xie.
Whether to use the R package curl to upload the image.
If FALSE
, the system command curl
will be used.
Whether to include the XML response in the returned value.
A character string of the link to the image. If include_xml = TRUE
,
this string carries an attribute named XML
, which is the XML response
from Imgur (it will be parsed by xml2 if available). See Imgur API in
the references.
One application is to upload local image files to Imgur when knitting a
document with knitr: you can set the knitr::opts_knit$set(upload.fun = xfun::upload_imgur
, so the output document does not need local image files
any more, and it is ready to be published online.
Please register your own Imgur application to get your client ID; you can certainly use mine, but this ID is in the public domain so everyone has access to all images associated to it.
if (FALSE) { # \dontrun{
f = tempfile(fileext = ".png")
png(f)
plot(rnorm(100), main = R.version.string)
dev.off()
res = imgur_upload(f, include_xml = TRUE)
res # link to original URL of the image
attr(res, "XML") # all information
if (interactive())
browseURL(res)
# to use your own key
options(xfun.upload_imgur.key = "your imgur key")
} # }