如何解决如何从不同的文件夹加载不同的图像而不只使用 rshiny 目录中的 www 文件夹?
我正在使用 rshiny 构建渲染图像应用程序。我有 10 个不同的文件夹,每个文件夹中有 300 个图像。我不想将所有这些 3000 张图像放入一个 www 文件夹中。有什么方法可以在服务器脚本中编写代码,以便我可以转到相关文件夹并找到我正在寻找的正确图像。
我搜索了rshiny官网,它说:
img(src = "my_image.png",height = 72,width = 72)
img 函数会在特定位置查找您的图像文件。您的文件必须位于 app.R 脚本所在目录中名为 www 的文件夹中。 Shiny 以一种特殊的方式对待这个目录。 Shiny 将与您用户的网络浏览器共享放置在此处的任何文件,这使得 www 成为放置图像、样式表和浏览器构建您的 Shiny 应用程序的 wep 组件所需的其他内容的好地方。
我将使用 rshiny 网站的示例
library(shiny)
ui <- fluidPage(
titlePanel("My Shiny App"),sidebarLayout(
sidebarPanel(),mainPanel(
img(src = "rstudio.png",height = 140,width = 400)
)
)
)
server <- function(input,output) {
}
shinyApp(ui = ui,server = server)
但是,www 文件夹中的一个图像。我有 10 个不同的文件夹,每个文件夹中有 300 张图片。
我希望我能得到一些帮助。谢谢!
解决方法
我们可以使用允许传递文件夹路径的 renderImage()
。下面是一个例子:
library(shiny)
ui <- fluidPage(
titlePanel("My Shiny App"),sidebarLayout(
sidebarPanel(textInput('image_path',label = 'File Path:'),actionButton('send_path','Get Image')),mainPanel(
imageOutput('my_image'),imageOutput('my_path_image')
)
)
)
server <- function(input,output) {
output$my_image <- renderImage({
list(src = '~/test.png') #use ~ to acces the home folder.
},deleteFile = FALSE)
observeEvent(input$send_path,{
output$my_path_image <- renderImage({
list(src = input$image_path)
},deleteFile = FALSE)
})
}
shinyApp(ui = ui,server = server)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。