GraphicsMagick 和 grunt-responsive-image - 引擎:'im' 中断任务

GraphicsMagick and grunt-responsive-image - engine: 'im' breaks task

目标 - 我正在使用 grunt 设置资产管道来转换和压缩网站的图像文件。

问题 - grunt-responsive-images 无法找到 gm/convert.

Warning: Could not execute GraphicsMagick/ImageMagick: identify "-ping" "-format" "%m:%T:%s" "src/css/images/test.jpg" this most likely means the gm/convert binaries can't be found

GraphicsMagick 已安装,我可以从同一目录调用 gm version

GraphicsMagick 1.3.25 2016-09-05 Q16 http://www.GraphicsMagick.org/

如果我注释掉下面的 engine: 'im' 行,任务将运行并应用大小和压缩设置。

grunt.initConfig({
responsive_images: {
  dev: {
    options: {
      // engine: 'im',    <--does this invoke gm?
      sizes: [{
        name: 'small',
        width: '30%',
        suffix: '_small',
        quality: 60
      },{
        name: 'large',
        width: '50%',
        suffix: '_large',
        quality: 40
      }]
    },

问题 1 - 引擎是什么:'im' 在做什么?

问题 2 - 当 engine: 'im' 不存在时,grunt-responsive-images 如何调整和压缩图像文件指定了吗?是否使用内置图像工具?

更新

当我将 engine: 'im' 更改为 engine: 'gm' 时,任务完成且没有错误。也许 im = imageMagickgm = graphicsMagick?另外,也许grunt-responsive-images可以找到gm,但是找不到im?

问题 3 - 我如何修复 grunt-responsive-images 以与 imageMagick 一起工作(就像我在许多教程中看到的那样)?

谢谢!

我在文档中找到了答案:grunt-responsive-images\options

答案 1 - options.engine:选择调整图像大小时使用的图形引擎。要使用 GraphicsMagick,将其设置为 gm。要使用 ImageMagick,请将其设置为 im。 您需要安装相关引擎。

答案 2 - 我通过 npm 安装了 gm,grunt-responsive-images 使用它来压缩和调整大小。我没有安装imagemagick。 brew list 没有显示 imagemagick(列出了 graphicsmagick,这可能是我 认为 我安装了 imagemagick 的原因)。

答案 3 - 修复很简单;使用自制软件安装 imagemagick:

brew install imagemagick 然后检查 brew list。现在 grunt 在选择 'gm' 或 'im' 引擎的情况下运行。