如何在RStudio查看器窗格中显示PNG文件?

问题描述

如果我有一个.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是{ {1}},然后"preview.png"将在查看器窗格中显示getoption("viewer")(filename)非常灵活,可以处理许多其他情况,但对我而言,它基本上只是复制和重命名文件

解决方法

使用R包magick:

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-08-28创建