使用Imagecomparer,如何排除ToleranceRectangle的中间部分进行比较?

时间:2016-08-03 18:29:38

标签: c#

我在我的移动测试项目中使用了imagecomparer,我能够将基线图像与当前屏幕截图进行比较,但问题出现在屏幕截图的一部分总是在变化,我想排除那个部分比较。这是我的代码:

<input checked />
<input checked={true} />

这是一个示例(不是正在测试的应用程序),我希望从整个屏幕截图中排除红色矩形内的区域进行比较。

Mobile Screenshot Example

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:0)

找到一种比尝试排除某个部分不被比较更好的方法。感谢同事的建议,我将不需要比较的部分涂黑,然后保存此图像。在基线图像和屏幕截图上执行此操作将具有与完全排除它相同的效果。这是代码:

Image image = Image.FromFile(@"C:\Screenshots\Screenshot.jpeg");

using (Graphics g = Graphics.FromImage(image))
{
    SolidBrush brush = new SolidBrush(Color.Black);
    Size size = new Size(image.Width, 64);
    Point point = new Point(0, 0);
    Rectangle rectangle;

    rectangle = new Rectangle(point, size);

    g.FillRectangle(brush, rectangle);
}

image.Save(@"C:\Screenshots\Screenshot.jpeg");