我正在尝试将图像添加到R DT
包中的数据表中。我想问这个问题:How to embed an image in a cell a table using DT, R and Shiny它适用于在线图像。但是当我尝试添加本地的图像(使用R
创建)时,它就不会出现。这是我的问题的一个例子:
x = rnorm(1000)
png(paste0("Graficas/test.png"))
Plot = plot(x, type = "l")
dev.off()
camino = '<img src="Graficas/test.png" height="30"></img>'
data = data.frame(0.5,camino)
datatable(data, escape = FALSE)
我无法理解为什么会发生
答案 0 :(得分:5)
这是一种方法(通过嵌入base64编码的图像并将其用于src
)。
首先我们要做一个小帮手:
img_uri <- function(x) { sprintf('<img src="%s"/>', knitr::image_uri(x)) }
这将让我们成为data uri。我们正在整理整个文件并将其转换为base64,然后在将整个blob粘贴到src
属性之前进行更多格式化。
这就是1x1像素PNG看起来像这样编码的方式:
<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=\"/>
所以,我们只对你创建的那个做同样的事情:
x = rnorm(1000)
png(paste0("test.png"))
Plot = plot(x, type = "l")
dev.off()
camino = img_uri("test.png")
data = data.frame(0.5 ,camino)
DT::datatable(data, escape = FALSE)
您的问题是b / c它不是“URI”,它无法从本地系统中提取。它可能在浏览器上下文中使用file://…
URL。