I want to see find the base64 encoding of an image, so I can save a plot as part of a JSON file or embedded into an HTML page.
library(party)
irisct <- ctree(Species ~ ., data = iris)
plot(irisct, type="simple")
Are there other ways to share an R image over the web?
If you have the package base64enc
installed, it's much simpler, with equivalent results (assuming you have the image file.png
already on disk):
# Using RCurl:
txt1 <- RCurl::base64Encode(readBin("file.png", "raw", file.info("file.png")[1, "size"]), "txt")
# Using base64encode:
txt2 <- base64enc::base64encode("file.png")
html1 <- sprintf('<html><body><img src="data:image/png;base64,%s"></body></html>', txt1)
html2 <- sprintf('<html><body><img src="data:image/png;base64,%s"></body></html>', txt2)
# This returns TRUE:
identical(html1, html2)
But using knitr::image_uri("file.png")
(see Bert Neef's answer) is even simpler!
You could try using knitr
library(knitr)
printImageURI<-function(file){
uri=image_uri(file)
file.remove(file)
cat(sprintf("<img src=\"%s\" />\n", uri))
}
the printImageURI function takes the filename of a file on disk (I use it quite often with PNG files generated by ggplot). It works great with Firefox, Chrome and IE.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With