这段时间在搞 img-sprite 这个东西,然后需要缩小图片,然后发现 Jimp 的表现不理想,于是只能妥协使用 gm,然后一下子就掉坑里了弄了整个下午😢

windows 安装

官网 下载 .exe 安装一直 next 就行了

osx 安装

  1. 首先安装 Homebrew,osx 的套件管理器,命令行安装即可

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. 修改 /usr/local 权限,防止之后安装 gm 各种报错

    # 为文件所有者同一分组的用户添加可写权限
    sudo chmod -R g+w /usr/local
  3. 通过 brew 安装 GraphicsMagick(libpng 等依赖包会一并下载)

    brew install graphicsmagick

可忽略的黑历史

  1. 最开始尝试通过源码编译直接安装 GraphicsMagick,之后发现调用 node-gm 报错,这才意识到需要先安装好 libpng 之类的依赖包

    安装 GraphicsMagick

    $ cd 源目录
    $ .configure
    $ make
    $ sudo make install

    node 里面执行gm()报错

    Caught exception: Error: Command failed: convert: no decode delegate for this image format

    如果安装 GraphicsMagick 之前执行 .configure 之后看到PNG这一项是 no,那么说明安装有问题

    Magick++ --with-magick-plus-plus=yes yes
    PERL --with-perl=no no
    PNG --with-png=yes no
    TIFF --with-tiff=yes no
    TRIO --with-trio=yes no
  1. 找到并下载了 libpng,然后通过上述一样的方法安装 libpng,重新安装 gm,问题没解决。尝试又安装了 zlib,未果。发现没法 make uninstall libpng 有点凄凉
  2. 找到一个 看起来靠谱的答案,没找到 libpng-dev 这个包。在 libpng 官网 下载了 lpng12.zip 发现没法安装
  3. 放弃之前的做法,尝试通过 brew 安装。安装过程顺利,但最后出现类似如下报错,确定是权限问题。按照 这里 的提示解决了问题。解决方法是,brew rm 之前安装的包,然后修改 /usr/local/ 可写权限,再重新下载即可

    报错

    $ brew install graphicsmagick
    ....
    $ brew link graphicsmagick
    Linking /usr/local/Cellar/graphicsmagick/1.3.21...
    Error: Could not symlink include/GraphicsMagick/Magick++/Blob.h
    /usr/local/include/GraphicsMagick/Magick++ is not writable.
    # 类似
    Could not symlink xxx
    xxx is not writable

    解决

    $ brew rm graphicsmagick
    $ brew rm libpng
    ...
    $ sudo chmod -R g+w /usr/local
    $ brew install graphicsmagick

参考链接

Homebrew 的安装与使用

鸟哥的私房菜 - 文件权限