我正在使用 Magick.NET (Q16-x64 v7.0.0.0011) 来比较图像。当我使用 ImageMagick 的命令行版本并在没有任何特殊选项的情况下进行比较时,它会给出一个图像,其中相同部分显示为浅色背景,差异显示为红色。我试图在 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”运行命令行版本,这似乎是您会得到的。不同之处在于 SetHighlightColor 设置为什么,而图像的其余部分是根据 SetLowlightColor 的纯色。我尝试了几种不同的文件和文件格式,结果相同。
在以下 SO 问题的答案中参考“图解示例”: 区分图像 我得到的是第一个示例。我想要的是最后一个例子。
任何帮助将不胜感激。