无法使GraphicsMagick(gm)正确比较两个文件

时间:2015-05-26 10:28:35

标签: graphicsmagick

尝试在节点中使用GraphicsMagick)gm模块比较两个本地.png文件,并将它们的差异作为第三个.png输出,以便稍后进行进一步分析。

使用http://aheckmann.github.io/gm/docs.html中的示例代码:

var gm = require('gm');

var options = {
  file: '/home/ubuntu/workspace/difference/diff.png',
  highlightColor: 'yellow', // optional. Defaults to red
  // tolerance: 0.00
}

gm.compare("/home/ubuntu/workspace/images/logo.png", "/home/ubuntu/workspace/images/logo2.gif", options , function (err, isEqual, equality, raw) {
  if (err) throw err;
  console.log('The images are equal: %s', isEqual);
  console.log('Actual equality: %d', equality)
  console.log('Raw output was: %j', raw);
});

尽管两个文件完全不同,但gm总是将它们的相等性报告为true,除非我将其公差传递给0.00 - 因此生成的diff.png只是logo1.png的ywllo着色(突出显示)版本

我希望的是(a)发现两个文件不同的代码和(b)差异只是突出显示黄色差异区域,而不是整个图像着色。

一定是我做错了什么,但是什么?

1 个答案:

答案 0 :(得分:0)

在你的描述中,你说两个png文件,但在你的代码中,第二个是.gif文件。这是你问题的根源吗?您可以通过使用GraphicsMagick转换为相同的格式来解决它。