我正在使用Magick.NET(Q16-x64 v7.0.0.0011)来比较图像。当我使用ImageMagick的命令行版本并且没有任何特殊选项的情况下进行比较时,它会给出一个图像,其中相同的部分显示为浅色背景和红色差异。我试图在Magick.NET中复制这种行为。我试了下面的代码:Magick.net比较
var image1Path = @"D:\Compare Test\image1.jpg";
var image2Path = @"D:\Compare Test\image2.jpg";
var diffImagePath = @"D:\Compare Test\imageDiff.jpg";
using (MagickImage image1 = new MagickImage(image1Path))
using (MagickImage image2 = new MagickImage(image2Path))
using (MagickImage diffImage = new MagickImage())
{
image1.Compare(image2, ErrorMetric.Absolute, diffImage);
diffImage.Write(diffImagePath);
}
我最终得到的是一个只显示差异的文件。这看起来像是如果使用“-compose src”运行命令行版本时会得到的结果。根据SetLowlightColor的不同,SetHighlightColor被设置为不同的值,图像的其余部分为纯色。我尝试了几个不同的文件和文件格式,结果相同。
参考下面SO问题的答案中的“图解示例”:Diff an Image 我得到的是第一个示例。 我想要的是最后一个例子。
任何帮助将不胜感激。
您是否知道ImageMagick的7.0.0还没有正式发布?现在可用的只是用于测试的前期测试版。所以知道一些事情可能无法按预期工作! – 2015-03-31 11:51:26
感谢您提供这方面的信息。 Magick.NET的开发人员回复了我在Magick.NET论坛上的问题。我错过了设置属性,但比较中当前版本的ImageMagick中也存在一个错误。一旦错误得到解决,开发人员将在此发布答案。 – Craig 2015-03-31 14:26:05