【问题标题】:How to display a PNG file in RStudio viewer pane?如何在 RStudio 查看器窗格中显示 PNG 文件?
【发布时间】: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 的阅读表明它应该可以工作,但我可能错了

标签: r rstudio


【解决方案1】:

使用 R 包魔法:

library(magick)
#> Linking to ImageMagick 7.0.10.26
#> Enabled features: cairo, fontconfig, freetype, lcms, pango, rsvg, webp, x11
#> Disabled features: fftw, ghostscript
#> Using 4 threads
# Assuming png package is installed.
filename <- system.file("img", "Rlogo.png", package="png")
image_read(filename)

reprex package (v0.3.0) 于 2020 年 8 月 28 日创建

【讨论】:

  • 谢谢,太好了!对于其他感兴趣的人:将有关图像的一些信息打印到控制台。要抑制这种情况,请使用print(image_read(filename), info = FALSE)
  • 我刚刚尝试使用 R 版本 4.0.3,并且仍然适用于我。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 2016-08-02
  • 1970-01-01
  • 2020-04-13
相关资源
最近更新 更多