GraphicsMagick和grunt-responsive-image - engine:'im'打破任务

时间:2017-05-17 15:31:59

标签: gruntjs imagemagick asset-pipeline graphicsmagick

目标 - 我正在使用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 - 当未指定引擎:'im'时,grunt-responsive-images如何调整图像文件的大小和压缩?它是否使用内置图像工具?

更新

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

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

回答2 - 我通过npm安装了gm,grunt-responsive-images使用它来压缩和调整大小。我没有安装了imagemagick。 brew list没有显示imagemagick(列出了graphicsmagick,可能是为什么我想到我安装了imagemagick)。

回答3 - 修复很简单;用homebrew安装imagemagick:

brew install imagemagick然后查看brew list。现在,grunt选择'gm'或'im'引擎运行。