我有一个Shiny仪表板应用程序,它基于过滤器渲染图像,因此根据过滤器中选择的值,图像会显示在框中。然而,有些图像太大,在框外渲染,这意味着框中并没有包含整个图像。
如果我尝试用img(src="imagename",height=200(显示相同的图像,则图像会自动放入框中。如何使用imageOutput((函数复制相同的内容?
下面是代码的一个片段:
library("shiny")
library("shinydashboard")
sidebar <- dashboardSidebar()
body <- dashboardBody(
fluidRow(
box(imageOutput("image")) # IMAGE TOO BIG AND BOX CANNOT COMPLETELY CONTAIN IT
img(src="imagename", height = 200) # Image adjusted to box size
)
)
ui <- dashboardPage(dashboardHeader(title = "Example"),
sidebar,
body
)
server <- function(input, output) {
output$image <- renderImage({
filename <- normalizePath(file.path(paste('www/',imagename, '.png', sep='')))
list(src = filename)},
deleteFile = FALSE)
})
}
shinyApp(ui, server)
您可以在使用renderImage
:返回的列表中设置高度
output$image <- renderImage({
filename <- normalizePath(file.path(paste0('www/', imagename, '.png')))
list(
src = filename,
height = 200
)
}, deleteFile = FALSE)