Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Magick.net比较_C#_.net_Compare_Imagemagick_Magick.net - Fatal编程技术网

C# Magick.net比较

C# Magick.net比较,c#,.net,compare,imagemagick,magick.net,C#,.net,Compare,Imagemagick,Magick.net,我正在使用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"; va

我正在使用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”运行命令行版本,您可能会得到这样的结果。根据SetLowlightColor,差异是SetHighlightColor设置为的任何颜色,图像的其余部分是纯色。我尝试了几种不同的文件和文件格式,得到了相同的结果

参考以下问题答案中的“图解示例”: 我得到的是第一个例子。 我想要的是最后一个例子


任何帮助都将不胜感激。

用于的CLI
compare
方法是:

compare img1.png img2.png delta.png
这没有明确设置
-compose
方法。这意味着,
compare
使用了默认的合成方法,即
SrcOver
。因此命令较短,但与

compare img1.png img2.png -compose SrcOver delta.png
如果您有兴趣测试所有可用的合成方法进行比较,可以运行

compare -list compose
它应返回类似以下内容的列表:

顶部混合模糊凹凸贴图更改遮罩清晰颜色燃烧颜色减淡着色CopyBlack CopyBlue CopyCyan CopyGreen CopyMagenta CopyOpacity CopyRed CopyYellow变暗暗暗暗度分光度分光度差置换溶解扭曲DSTAPTOP DstIn DstOut DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTOWN DSTO线性调制线性发光数学最小DST最小Src调制模块ADD模块Subtract乘法无输出叠加在PegtopLight PinLight上加上替换饱和屏幕软光Src Src Src TOP Src IN Src Out Src Over LIVELIGHT Xor

要真正了解这些方法的效果,请尝试以下方法(在Mac OS X或Linux上--DOS
cmd
/
*.bat
您必须自己想出):


你会发现有很多有趣的效果需要发现:)

你知道ImageMagick 7.0.0还没有正式发布吗?现在可用的只是用于测试的预备测试。所以要知道,有些事情可能不会像预期的那样起作用!谢谢你的信息。Magick.NET的开发人员在Magick.NET论坛上回答了我的问题。我没有设置属性,但是当前版本的ImageMagick on Compare中也有一个bug。一旦bug被解决,开发者将在这里发布一个答案。我非常感谢这些有用的信息。我会投票支持你的答案,但在网站上还没有足够的声誉。@Craig87762:我不知道你需要任何声誉来支持自己问题的答案…:(@Craig:所以你只能“接受”你自己问题的答案?是的,我觉得这也很奇怪。它说我需要15个声誉来提升任何东西。我还没有尝试过,但希望它至少能让我这么做。
for i in $(compare -list compose); do
  compare img1.png img2.png -compose ${i} composed-with-${i}-delta.png
done