Che*_* Wu 6 macos imagemagick xquartz
我正在尝试在 R 中创建动画可视化,人们说需要安装ImageMagick. 但是,现在的 Mac 似乎不再支持 x11,而 ImageMagick 只需要 Mac 上的 X11 服务器。安装 ImageMagick
我也试过brew install imagemagick --with-x11,不起作用,只返回了这么多错误。
Apples 表示需要使用 XQuartz 来替换 x11。我有 XQuartz,但是当我打开它时,在这里输入相同的命令,仍然给我同样的错误
显示:委托库支持不是内置的 '' (X11) @ error/display.c/DisplayImageCommand/1891。
所以,我的问题是,如何在 Mac XQuartz 上安装和使用 ImageMagick?
我创建了一个Homebrew ImageMagick X11公式,可以像这样使用:
brew uninstall imagemagick # without X11 support
brew install --cask xquartz
brew install tlk/imagemagick-x11/imagemagick
Run Code Online (Sandbox Code Playgroud)
请注意,homebrew-core 用于支持公式选项,例如--with-x11为了启用configure同名选项。现在情况已不再是这样,因为 Homebrew 维护者决定从 Homebrew 核心公式中删除公式选项。
更新答案
请注意,自从我写下这个答案以来,情况发生了一些变化,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
Run Code Online (Sandbox Code Playgroud)
我想到的另一个选择是,您可以添加自己的使用 macOS 内置Preview应用程序的委托,并告诉ImageMagick使用它,即委托给它,而不是安装所有 XQuartz。这意味着您可以执行以下操作:
magick SomeImage.png -crop 100x100+10+10 display:
Run Code Online (Sandbox Code Playgroud)
为此,您需要找到您的delegates.xml文件。我用过这个:
magick -list delegate | awk '/^Path/ {print $2}'
Run Code Online (Sandbox Code Playgroud)
我的位于:
/opt/homebrew/Cellar/imagemagick/7.1.0-16/etc/ImageMagick-7/delegates.xml
Run Code Online (Sandbox Code Playgroud)
然后我编辑了该文件并在非常接近末尾的位置添加了一行,但就在最后一行的上方,如下所示:
<delegate decode="miff" encode="display" spawn="True" command="magick %i %u.png ; /usr/bin/open -a Preview %u.png"/>
Run Code Online (Sandbox Code Playgroud)
这会将ImageMagick知道的任何文件格式转换为应用程序可以理解的 PNG Preview,并且应该能够表示大多数图像,甚至是具有 16 位深度和透明度的图像。
原答案
一般来说,要将ImageMagick与 X11 一起使用,如果您遵循以下步骤,您可能最有可能成功:
第 1 步 - 安装或更新 Xcode 命令行工具
确保您的开发人员工具是最新的非常重要,特别是如果您在最初设置这些工具后已经更新了macOS版本。您可以通过以下方式执行此操作:
xcode-select --install
Run Code Online (Sandbox Code Playgroud)
第 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
Run Code Online (Sandbox Code Playgroud)
第 3 步 - 检查
如果您多年来一直尝试安装 ImageMagick,则可能遗留了一些旧版本。使用 中自制安装的版本非常重要/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
Run Code Online (Sandbox Code Playgroud)
第 4 步 - 启动 X11
启动 X11,它可能是最简单的启动xclock,它不仅启动 X11,而且还会检查 X11 正在运行的所有内容以及您的 X11 环境是否配置正确:
xclock &
Run Code Online (Sandbox Code Playgroud)
第 5 步 - 运行 ImageMagick X11
现在您可以测试您的ImageMagick配置,无需任何测试图像,如下所示 - 因为wizard:图像是内置的:
display wizard:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3125 次 |
| 最近记录: |