node 裁切工具 gm 使用报错
发布于 5 年前 作者 rongchanghai 3647 次浏览 来自 问答
var gm = require('gm');
var fs = require('fs');
gm('./img/a.jpg')
  .resize(200,200,'!')
  .write('./img/b.jpg', function (err) {
    if(err){
      console.log(err)
      console.log('err')
    }else{
      console.log('success')
    }
  })

image.png
路径也正确,但是运行就会报err image.png

gm 安装成功了,但是gm/convert binaries can’t be found 怎么解决? 请指教

13 回复

首先,我并不知道楼主的环境配置是什么样的,然后我来说一下可能的原因。

  1. 楼主鉴于这种情况,我认为您应该仔细看一下npm gm,里面有一句话:

First download and install GraphicsMagick or ImageMagick.

这个模块是依赖于GraphicsMagickImageMagick这两个软件的,如果你的机器上没有,需要安装。

  1. 这个模块可以使用可以使用GraphicsMagick也可以用ImageMagick,由你的环境决定。

Use ImageMagick instead of gm

Subclass gm to enable ImageMagick

var fs = require('fs')
  , gm = require('gm').subClass({imageMagick: true});
 
// resize and remove EXIF profile data 
gm('/path/to/my/img.jpg')
.resize(240, 240)
...

额,,,然后,,上面的序号貌似显示有点问题,,我编辑了3次 还是没有改过来。。我很难受,但愿楼主别难受就好了

屏幕快照 2017-06-28 下午2.58.42.png

这两个选一个装上

@CRAZYFAKE 电脑是 mac 环境 文档中的两个 包 GraphicsMagick (gm)、ImageMagick ,我已经全部装上了, image.png

但是不管我使用gm 还是 imageMagick ,都会报出这个错误。困扰好久!

@nnliang 已经都装了,还是老样子

@rongchanghai nonono,GraphicsMagickImageMagick是软件,不是npm模块。。。

@rongchanghai

First download and install GraphicsMagick or ImageMagick. In Mac OS X, you can simply use Homebrew and do:

brew install imagemagick
brew install graphicsmagick

@CRAZYFAKE 非常感谢,祝君顺利🙂

@rongchanghai 没事,我开始做node的时候也是这样,拿过别人的模块来直接用,经常搞得一头雾水,后来慢慢知道了要仔细阅读人家的文档😎

@rongchanghai 如果你电脑是mac 请用brew install ~ 并不是npm install~

@nnliang 是的,谢谢。 但是我写在只能使用 imageMagick 不能直接使用gm,直接使用的话还是 image.png

@rongchanghai 我是这么用的你看一下,直接require 是不行的~

const gm = Promise.promisifyAll(require('gm').subClass({ imageMagick : true }))
回到顶部