首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将ImageMagick与XQuartz结合使用

如何将ImageMagick与XQuartz结合使用
EN

Stack Overflow用户
提问于 2017-06-19 07:21:49
回答 2查看 3.6K关注 0票数 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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-26 08:16:13

最新答案

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

代码语言:javascript
复制
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

我想到的另一个选择是,与其安装所有的XQuartz,不如添加使用macOS内置的Preview应用程序的自己的委托,然后告诉ImageMagick使用它,即委托给它。这意味着你可以做这样的事情:

代码语言:javascript
复制
magick SomeImage.png -crop 100x100+10+10 display:

要使其工作,您需要找到您的delegates.xml文件。我用这个:

代码语言:javascript
复制
magick -list delegate | awk '/^Path/ {print $2}'

我的网址是:

代码语言:javascript
复制
/opt/homebrew/Cellar/imagemagick/7.1.0-16/etc/ImageMagick-7/delegates.xml

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

代码语言:javascript
复制
<delegate decode="miff" encode="display" spawn="True" command="magick %i %u.png ; /usr/bin/open -a Preview %u.png"/>

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

原始答案

通常,要将ImageMagick与X11一起使用,如果您遵循以下步骤,很可能会成功:

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

重要的是您的开发工具是最新的,特别是如果您已经更新了您的macOS版本,因为它们是最初设置的。你可以这样做:

代码语言:javascript
复制
xcode-select --install

步骤2-确保ImageMagick正确安装

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

代码语言:javascript
复制
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很长时间了,那么您可能留下了一些旧版本。在/usr/local/bin中使用自制安装的版本是很重要的,因此请检查您正在运行的版本,如下所示:

代码语言:javascript
复制
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环境:

代码语言:javascript
复制
xclock & 

步骤5-运行ImageMagick X11

现在您可以测试您的ImageMagick配置,而不需要任何测试映像,因为wizard:映像是内置的:

代码语言:javascript
复制
display wizard:
票数 2
EN

Stack Overflow用户

发布于 2020-01-13 16:00:14

我创建了一个可以像这样使用的自制ImageMagick X11公式:

代码语言:javascript
复制
brew uninstall imagemagick  # without X11 support
brew install --cask xquartz
brew install tlk/imagemagick-x11/imagemagick 

请注意,自制核心用于支持公式选项 (如--with-x11 ),以便启用同名的configure选项。这不再是作为Homebrew保持器(S) 决断从自制核心公式中删除公式选项的情况。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44624479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档