命令行中的转换命令错误

31

我有一个如下的Bash shell脚本。

#!/bin/bash

SIZES=("512" "1024" "2048")

for i in ${!SIZES[*]}
do
    SIZE=${SIZES[$i]}
    echo $SIZE

    # first, resize original image
    convert -resize $SIZE"x"$SIZE! chernarus2048.jpg chernarus$SIZE"x"$SIZE.jpg
    mkdir tiles$SIZE
    # slice resized image into 256x256 tiles
    convert -crop 256x256 chernarus$SIZE"x"$SIZE.jpg tiles$SIZE/tile%04d.jpg
    rm chernarus$SIZE"x"$SIZE.jpg
done

但是当我使用以下命令在命令行中运行时

sh generate_tiles.sh chernarus2048.jpg

我遇到了一个错误convert: 命令未找到

我正在使用OS X Yosemite 10.10.2。图像保存在与shell脚本相同的文件夹中。请帮帮我。


2
听起来好像 convert 不在你的路径中。你能正常运行它吗?which convert 告诉你什么? - Tom Fenech
1
你为什么要给你的脚本传递一个参数?它没有使用 $1 - Barmar
@Tom Fenech,“which convert”在终端中没有任何输出。 - Nevin Raj Victor
@Barmar 谢谢您的建议。但我的基本问题是关于'convert'命令。 - Nevin Raj Victor
不要使用 sh 运行 bash 脚本。尽管 OSX 的 sh 实际上是 bash,但它的行为不同,并且某些 bash 功能被禁用。 - geirha
显示剩余6条评论
4个回答

48

1
我不得不使用 brew install php56-imagick(使用 homebrew-php,安装 php 5.6) - Anthony

27

操作步骤

方法1:使用命令$ sudo port install ImageMagick

方法2:使用 Homebrew 命令brew install imagemagick

方法3:从以下链接下载 http://cactuslab.com/imagemagick/

  • 最后关闭终端并重新启动电脑,再次运行代码即可。

是的,你提供的链接对我很有帮助。对于我的Mac OS X Yosemite系统,我从这个列表中下载了 Yosemite 的安装包,并安装完成后在 Mac 终端中运行了以下代码 > $ sudo port install ImageMagick - zeeawan

6

convertImageMagick的一部分,在OS X上默认未安装。

根据ImageMagick网站上的下载说明

  • Install MacPorts

  • Install ImageMagick with

     $ sudo port install ImageMagick
    

@Matteo 我安装了MacPorts。但是当我尝试“$ sudo port install ImageMagick”时,它会显示错误“命令未找到”。 - Nevin Raj Victor
1
@NevinRaj 你是如何安装MacPorts的?你是否重新加载了.bashrc文件?在安装后,你是否打开了一个新的shell? - Matteo
1
@Matteo 这个链接帮助我安装了ImageMagick。但是错误仍然存在。然后我重新启动了电脑,打开了一个新的终端,然后它开始工作了。 - Nevin Raj Victor

1

我的port安装无法工作。 它总是返回“错误:找不到Port ImageMagick” 如果您使用port安装失败,您可以从http://cactuslab.com/imagemagick/下载pkg并直接安装。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接