【发布时间】:2020-08-28 00:02:09
【问题描述】:
如果我有一个 .PNG 文件,有没有一种简单的方法可以在 RStudio 查看器窗格中显示它?
使用这个答案https://stackoverflow.com/a/9319351/2554330 我可以在绘图窗格中使用
library(png)
filename <- system.file("img", "Rlogo.png", package="png") # or your own file
img <- readPNG(filename)
grid::grid.raster(img)
将其放入查看器窗格的一种复杂方法是:
temp <- tempfile(fileext = ".html")
writeLines(as.character(htmltools::img(src=knitr::image_uri(filename))), temp)
getOption("viewer")(temp)
但是有更简单的方法吗?例如。某个包中是否有一个现有函数可以在一次调用中执行此操作,例如
showPNG(filename)
?我可以在这样的函数中编写我的代码,但我更喜欢使用其他人的代码,这些代码已经过测试并且可能在比 RStudio 等更广泛的环境中工作。
编辑添加:我一直在仔细研究我接受的答案(因为我想避免依赖于 magick 包),并发现了令我惊讶的事情:如果 filename 是 "preview.png",那么getOption("viewer")(filename) 将在查看器窗格中显示。 magick::image_read 很灵活,可以处理许多其他情况,但对我来说基本上只是复制和重命名文件!
【问题讨论】:
-
这里的“更简单”是什么意思?首先想到的两件事是(1)更少的代码和(2)更少的包
-
@MichaelChirico,我在最后添加了一个更简单的解决方案示例。对我来说它更简单,内部可能并不简单。
-
谢谢。
rstudioapi::viewer(filename)不起作用(它在新窗口中为我打开,与utils::browseURL(filename)的行为相同)表明您可能不走运。您可以尝试在 RStudio 社区上提问...我对?rstudioapi::viewer的阅读表明它应该可以工作,但我可能错了