Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 在不带X11的机器上(即不涉及前端)将Mathematica中的绘图导出为图像_Image Processing_Export_Wolfram Mathematica - Fatal编程技术网

Image processing 在不带X11的机器上(即不涉及前端)将Mathematica中的绘图导出为图像

Image processing 在不带X11的机器上(即不涉及前端)将Mathematica中的绘图导出为图像,image-processing,export,wolfram-mathematica,Image Processing,Export,Wolfram Mathematica,考虑以下带有内核命令行界面的对话框: $ math Mathematica 6.0 for Linux x86 (32-bit) In[1]:= p = Plot[x^2, {x,-1,1}] Out[1]= -Graphics- In[2]:= Export["foo.png", p] Out[2]= foo.png 这在Linux x86(32位)(2008年6月2日)版本为$Version=6.0的机器上运行正常,但在Linux x86(64位)(2008年11月11日)版本为$7.

考虑以下带有内核命令行界面的对话框:

$ math
Mathematica 6.0 for Linux x86 (32-bit)

In[1]:= p = Plot[x^2, {x,-1,1}]
Out[1]= -Graphics-

In[2]:= Export["foo.png", p]
Out[2]= foo.png
这在Linux x86(32位)(2008年6月2日)版本为$Version=6.0的机器上运行正常,但在Linux x86(64位)(2008年11月11日)版本为$7.0的机器上运行失败,错误如下:

Export::nofe: A front end is not available; export of PNG 
requires a front end.
我能想到的任何其他图像格式都有类似的错误

所以问题是,如何让Mathematica内核,无前端,导出图像?为什么它在Mathematica 6.0中工作顺利?如果上述示例在版本7中适用,请让我知道

PS:Version7引入了使用前端的功能
,但在

Developer`UseFrontEnd::nofestart: 
Unable to launch a front end. Proceeding without a front end.
可能是因为机器上没有安装X11

补遗
事实证明,版本6和版本7在这方面没有区别。相反,在版本为6的机器上,前端被无声地调用。这个问题的答案清楚地表明,另一台机器的问题是没有X服务器,因此无法调用前端。

导出图形也需要版本6中的前端。反过来,前端可能需要X(毕竟,即使某些2D绘图也需要3D图形加速…)


我只有适用于Windows的v6。从命令行会话导出图形时,前端会根据需要在后台自动启动。

从MathKernel导出图形需要前端。图形的渲染完全由前端覆盖。如果没有前端,则无法导出图形。没有解决办法

如果您有一个工作前端,您可以使用:

UseFrontEnd[导出[文件名,图形]]

这将从终端调用前端,允许您导出图形

要在未安装X server和windows manager的Linux计算机上安装工作前端,您可以使用以下选项:

  • 使用其他机器上的X显示。见例。基本上可以归结为设置环境变量
    export DISPLAY=machine\u address:0.0
    或在每个执行期间传递选项
    -DISPLAY machine\u address:0.0

  • 本地安装Xvfb,它是一个X服务器帧缓冲区。它使用起来非常简单和直接。例如,参见Xvfb上的Wikipedia条目。您可以在运行Xvfb
    Xvfb:display\u nr&
    时设置X display,然后像前面的选项一样使用它


  • 谢谢Zig!这一定是我的mathematica 6副本所发生的事情——它自动、无声地启动前端。我试图用它将一系列图形导出为pdf格式,方法是列出所有图形,但它最终生成了一个巨大的图形水平条带。有没有快速的方法可以将它们垂直放置,这样我就可以打印出来?@Timulus:例如。顺便说一句:这是一个有点离题和抱歉的滞后。