Perform an Image Comparison in Code

I would like to compare a specific image from the browser to one stored on disk.

Solution

Here is sample code showing how to perform an image comparison:

HtmlImage img = Find.ById<HtmlImage>("myImageId");
System.Drawing.Bitmap actualbmp = img.Capture();

ArtOfTest.Common.PixelMap expected = ArtOfTest.Common.PixelMap.FromBitmap(expectedbmp);
ArtOfTest.Common.PixelMap actual = ArtOfTest.Common.PixelMap.FromBitmap(actualbmp);

Assert.IsTrue(expected.Compare(actual, 5.0));
Dim img As HtmlImage = Find.ById(Of HtmlImage)("myImageId")
Dim actualbmp As System.Drawing.Bitmap = img.Capture()

Dim expected As ArtOfTest.Common.PixelMap = ArtOfTest.Common.PixelMap.FromBitmap(expectedbmp)
Dim actual As ArtOfTest.Common.PixelMap = ArtOfTest.Common.PixelMap.FromBitmap(actualbmp)

Assert.IsTrue(expected.Compare(actual, 5.0))

In the above code I am getting the image of the "myImageId" element from the browser and comparing it to the expected image stored on disk named "myExpected.png". The comparison is allowing a 5% tolerance, meaning there may be up to a 5% difference in the image or else the Assert fails and the test aborts.