R 单击闪亮应用程序中调整大小的图像上的坐标';覆盖完整图像
我的应用程序通过添加边框来调整图像大小。然后,我需要在修改后的图像上的任意位置收集带有边框的单击坐标。这似乎不适用于动态大小的图像输出 下面的代码生成一个应用程序,您可以在其中看到双击的x坐标。请注意,如果没有边框,x坐标将更新整个图像范围——从左到右单击可以看到整个范围的值。但是,当添加边框时,X坐标在中间停止,并且在图像右侧点击时不更新。 如果我在R 单击闪亮应用程序中调整大小的图像上的坐标';覆盖完整图像,r,image,shiny,imagemagick,shiny-reactivity,R,Image,Shiny,Imagemagick,Shiny Reactivity,我的应用程序通过添加边框来调整图像大小。然后,我需要在修改后的图像上的任意位置收集带有边框的单击坐标。这似乎不适用于动态大小的图像输出 下面的代码生成一个应用程序,您可以在其中看到双击的x坐标。请注意,如果没有边框,x坐标将更新整个图像范围——从左到右单击可以看到整个范围的值。但是,当添加边框时,X坐标在中间停止,并且在图像右侧点击时不更新。 如果我在渲染中删除动态确定的宽度和高度(例如,会话$clientData$output\u img\u width),它将按预期工作 是否有一种方法可以动
渲染
中删除动态确定的宽度和高度(例如,会话$clientData$output\u img\u width
),它将按预期工作
是否有一种方法可以动态创建图像大小和完全单击坐标
谢谢
library(shiny)
library(magick)
img <- image_read("https://jeroen.github.io/images/frink.png")
ui <- fluidPage(
sliderInput("border", "Border Size", 0, 100, 0),
verbatimTextOutput("coords", placeholder = TRUE),
imageOutput("img",
dblclick = "img_dblclick")
)
server <- function(input, output, session) {
updatedImageLoc <-reactiveVal(value = NULL)
observe({
file.saved.to.disk <- img %>%
image_border("red",
geometry = paste0(input$border * 10,
"x",
input$border * 10)) %>%
image_write(tempfile(fileext = "test.png"))
updatedImageLoc(file.saved.to.disk)
})
output$coords <- renderText({ paste("Double-click x coord is:",input$img_dblclick$x) })
output$img <- renderImage({
# Read width and height. These are reactive values, so this
# expression will re-run whenever these values change.
width <- session$clientData$output_img_width
height <- session$clientData$output_img_height
# Return a list
list(src = updatedImageLoc(),
contentType = paste0("image/png"),
width = width,
height = height)
},
## DO NOT DELETE THE FILE!
deleteFile = FALSE
)
}
# Run the application
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(magick)
img