Extends Verify to allow verification of documents via ImageSharp.
See Milestones for release notes.
Entity Framework Extensions is a major sponsor and is proud to contribute to the development this project.
[ModuleInitializer]publicstaticvoidInit()=>VerifyImageSharp.Initialize();[Test]publicTaskVerifyImageFile()=>VerifyFile("sample.jpg");[Test]publicTaskVerifyImageFileWithCustomEncoder()=>VerifyFile("sample.jpg").EncodeAsPng();Two files are produced
Samples.VerifyImageFile.verified.txt
{
Width: 1599,
Height: 1066,
HorizontalResolution: 1.0,
VerticalResolution: 1.0
}Samples.VerifyImageFile.verified.jpg
An instance if an SixLabors.ImageSharp.Image can be verified using the following:
[Test]publicTaskVerifyImage(){varimage=newImage<Rgba32>(11,11){[5,5]=Color.ParseHex("#0000FF").ToPixel<Rgba32>()};returnVerify(image);}By default, image comparison is byte-exact. To tolerate minor rendering differences (anti-aliasing, font hinting, subpixel rendering), enable SSIM (Structural Similarity Index) comparison by passing a threshold to Initialize:
[ModuleInitializer]publicstaticvoidInit()=>VerifyImageSharp.Initialize(ssimThreshold:0.999);SSIM returns a value between 0.0 (completely different) and 1.0 (identical). Images with an SSIM at or above the threshold are considered equal. Recommended thresholds:
0.999— tolerates anti-aliasing and subpixel rendering differences0.995— tolerates minor font/layout shifts across OS versions0.99— tolerates moderate rendering variation
Override the global threshold for a specific test:
[Test]publicTaskVerifyImageWithSsimThreshold(){varimage=newImage<Rgba32>(11,11){[5,5]=Color.ParseHex("#0000FF").ToPixel<Rgba32>()};returnVerify(image).SsimThreshold(0.95);}The SsimComparer class can also be used directly to get the raw SSIM value:
doublessim=SsimComparer.Calculate(receivedStream,verifiedStream);Swirl designed by BÖCK, RU from The Noun Project.


