问题描述
我试图在基于Shiny的服务中启用图像交互。但是,我找不到解决Shiny允许在错误区域进行交互的问题的解决方案。
library(shiny)
# Define UI ----
ui <- fluidPage(
imageOutput("ref1",click="ref1_click",dblclick = "ref1_dblclick",brush = brushOpts(id = "ref1_brush",resetonNew = TRUE),)
)
# Define server ----
server <- shinyServer(function(input,output,session){
output$ref1 <- renderImage({
return(list(
src = "images/E12image.png",contentType = "image/png",width = "500px"
))
},deleteFile = F)
})
# Run the app ----
shinyApp(ui = ui,server = server)
例如,如果尝试使用此Shiny笔刷操作,将仅允许刷刷下图所示的区域(如果clip = TRUE,如果为FALSE,则允许刷刷图像及其周围区域,但不限于此)合理的方式。)
output$ref1 <- renderImage({
return(list(
src = "images/E12image.png",contentType = "image/png"
))
它可以很好地刷整个图像。遍历各种组合之后,似乎每次交互都会失败,就像我每次在renderImage()中设置任何固定图像大小时所描述的那样,而与UI imageOutput()中的任何固定/动态图像大小设置无关。但是,如果我未在renderImage()中设置任何图像大小,则无法使图像很好地缩放到整个应用程序中的布局之类的网格中。我首先想到的是,由于布局之类的网格,交互失败,但是,即使在每页单个图像的情况下,交互也会发生。
clip = T / F调整此行为,如果我在renderImage()中设置了固定的图像大小,brush(able)区域会放大到左上角。所有这些听起来都像是问题出在线的某个位置,renderImage()首先为绘图区域(= brush(able)区域)设置了固定大小,然后图像(实际上很大)被缩小以适应约束并按比例缩放等效绘制区域。然后,我们获得了较小的图像,其左上角的绘图区域更小。
或者我看不到其他逻辑。
我想在图像上启用笔刷功能,以使坐标与图像相关(实际上很大,页面上显示的是较小比例的版本)。
有什么见解吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)