6

我正在尝试在 R 中创建动画可视化,人们说需要安装ImageMagick. 但是,目前的 Mac 似乎不再支持 x11,而 ImageMagick 只需要 Mac 上的 X11 服务器。安装 ImageMagick

我也试过brew install imagemagick --with-x11,不工作,只返回这么多错误。

苹果说需要用XQuartz来代替x11。我有 XQuartz,但是当我打开它时,在这里输入相同的命令,仍然给我同样的错误

显示:委托库支持不内置''(X11)@error/display.c/DisplayImageCommand/1891。

所以,我的问题是,如何在 Mac XQuartz 中安装和使用 ImageMagick?

4

2 回答 2

5

我创建了一个Homebrew ImageMagick X11公式,可以这样使用:

brew uninstall imagemagick  # without X11 support
brew install --cask xquartz
brew install tlk/imagemagick-x11/imagemagick 

请注意,homebrew-core 用于支持公式选项,例如--with-x11为了启用configure同名选项。由于 Homebrew 维护者决定从自制核心公式中删除公式选项,因此情况不再如此。

于 2020-01-13T16:00:14.327 回答
2

更新的答案

请注意,自从我写了这个答案以来,事情发生了一些变化,Homebrew 不再支持安装选项,例如--with-x11. @MattWhite 在评论中指出的一种可能性是交互式安装ImageMagick

brew install imagemagick -i;
./configure --disable-osx-universal-binary --prefix=/usr/local/Cellar/imagemagick/7.0.8-66 --disable-silent-rules --with-x11
make install
exit

我想到的另一个选择是,您可以添加自己的使用 macOS 内置Preview应用程序的委托并告诉ImageMagick使用它,即委托给它,而不是安装所有 XQuartz。这意味着您可以执行以下操作:

magick SomeImage.png -crop 100x100+10+10 display:

为此,您需要找到您的delegates.xml文件。我用这个:

magick -list delegate | awk '/^Path/ {print $2}'

我的在:

/opt/homebrew/Cellar/imagemagick/7.1.0-16/etc/ImageMagick-7/delegates.xml

然后我编辑了该文件并在非常接近结尾处添加了一行,但就在最后一行的上方,如下所示:

<delegate decode="miff" encode="display" spawn="True" command="magick %i %u.png ; /usr/bin/open -a Preview %u.png"/>

这会将ImageMagick知道的任何文件格式转换为应用程序可以理解的 PNG,Preview并且应该能够表示大多数图像,即使是具有 16 位深度和透明度的图像。

原始答案

一般来说,要在 X11 中使用ImageMagick,如果您遵循以下步骤,您可能最有可能成功:

第 1 步 - 安装或更新 Xcode 命令行工具

重要的是您的开发人员工具是最新的,尤其是如果您在最初设置它们后更新了macOS版本。你可以这样做:

xcode-select --install

第 2 步 - 确保正确安装 ImageMagick

最简单的方法是首先确保删除和清理旧版本的 ImageMagick,然后使用最新版本安装(或重新安装):

brew update                           # update homebrew itself 
brew rm imagemagick                   # remove old IM versions
brew install imagemagick --with-x11   # install latest IM version including X11 support

第 3 步 - 检查

如果您多年来一直在尝试安装 ImageMagick,您可能已经留下了一些旧版本。使用 homebrew 安装的版本很重要/usr/local/bin,因此请检查您是否正在运行您期望的版本,如下所示:

which convert           # should report "/usr/local/bin/convert"
which magick            # should report "/usr/local/bin/magick"

identify -version       # should report same version as next command
brew info imagemagick

第 4 步 - 启动 X11

启动 X11,它可能是最容易启动的xclock,它不仅会启动 X11,还会检查 X11 正在运行的所有内容以及您的 X11 环境是否配置正确:

xclock & 

第 5 步 - 运行 ImageMagick X11

现在您可以测试您的ImageMagick配置,不需要任何测试图像,如下所示 - 因为wizard:图像是内置的:

display wizard:
于 2017-06-26T08:16:13.487 回答