代码之家  ›  专栏  ›  技术社区  ›  Nova

将工作目录更改为使用rstudio中标记文档的imagemagick命令

  •  2
  • Nova  · 技术社区  · 6 年前

    我想使用imagemagick中的“蒙太奇”命令将文件夹中的两个图像合并为一个图像,在rstudio的r-markdown文件中。我会用 magick 图书馆的图像蒙太奇功能,但我不知道如何更改首选项(如几何图形、瓷砖等)- http://www.imagemagick.org/Usage/montage/ )

    我可以在rstudio之外使用终端,导航到包含图像的文件夹,单击地址栏,键入cmd-这表明我在正确的文件夹中:

    C:\Users\JaneDoe\Desktop\test>
    

    然后在命令窗口中:

    montage left.jpg logo.jpg new.jpg
    

    这将在该文件夹中创建一个名为“new.jpg”的新图像。

    我正在努力使用 system 但是,在rstudio中,命令从一个标记块内执行相同的操作。

    显然,我不能更改工作目录——假设我的项目目录是“c:/users/janedoe”——我不能在一个标记块中将其更改为“c:\users\janedoe\desktop\test”。

    我已经尝试了以下代码的多次迭代,试图让它在rstudio内工作,但没有运气。 我做错什么了? 注意:我的“真实”文件路径 在里面有一个空间。

    system("cd C:\\Users\\JaneDoe\\Desktop\\test && montage left.jpg logo.jpg new2.jpg")
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Nova    6 年前

    不幸的是,我对rstudio的了解还不够多。但是,了解imagemagick和php exec()和python子进程之类的内容,合乎逻辑的做法是提供图像的完整路径,而不是尝试更改目录。因此,如果您的工作目录在rstudio中设置为“c:\users\janedoe”,则类似这样的操作应该有效:


    系统(“蒙太奇桌面\test\left.jpg桌面\test\logo.jpg桌面\test\new2.jpg”)

    在某些系统中,比如在其他软件(如AppleScript)中的调用,您可能需要添加蒙太奇的完整路径,因为这些其他工具可能不像您的系统那样使用相同的路径环境变量,但在这种情况下,rstudio为系统调用提供工作区。