【发布时间】:2016-10-09 20:13:47
【问题描述】:
这是我在使用 R 编写的不同代码时遇到的问题。 基本上,我想生成一个显示图片(.png 文件)的窗口。根据this 或this 的指导,我想出了这样的代码:
library(tcltk)
tmpFile <- tempfile(fileext = ".png")
download.file("https://www.r-project.org/logo/Rlogo.png", tmpFile)
tcl("image","create","photo", "imageLogo", file=tmpFile)
win1 <- tktoplevel()
tkpack(ttklabel(win1, image="imageLogo", compound="image"))
这在 Mac OS 下可以正常工作,但在 Linux 或 Windows 上却不行,我会看到这样的错误消息:
[tcl] 无法识别图像文件中的数据
当我想显示图表时,我可以找到一些解决方法,例如使用包tkrplot 或igraph。尽管如此,我真的很想知道为什么在 Linux 或 Windows 上运行我的脚本时会出现这样的错误,而它在 Mac OS 上运行得很好。
如果这个问题很明显,我深表歉意,但我没有发现任何关于 tcltk 软件包的潜在差异,具体取决于操作系统。
【问题讨论】:
-
涉及到哪些版本的Tk库?这很重要,因为直到 8.6 才在 Tk 中原生支持 PNG。 (我写了相当多的代码……)
-
在我的 Windows 版本的 R 3.3.1 上,我有 tcl 8.5,在 R 3.3.1 下的 Ubuntu 上,我有 tcl 8.6,所以这似乎是 @Donal Fellows 所想的不同。问题中的代码在带有 gif 文件的 Windows 上对我有用。