Skip to content

Latest commit

 

History

1,537 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Verify.ImageMagick

Discussions Build status NuGet Status

Extends Verify to allow verification of documents via Magick.NET.

See Milestones for release notes.

Converts documents pdfs to png for verification.

Contains comparers for png, jpg, bmp, and tiff.

Sponsors

Entity Framework Extensions

Entity Framework Extensions is a major sponsor and is proud to contribute to the development this project.

Entity Framework Extensions

Developed using JetBrains IDEs

JetBrains logo.

NuGet

Usage

[ModuleInitializer]
public static void Init()
{
    VerifyImageMagick.Initialize();
    VerifyImageMagick.RegisterComparers(threshold: 0.5);
}

snippet source | anchor

Initialize registers the pdf to png converter and all comparers.

Outputs

Initialize accepts an optional ImageMagickOutputs flags enum that controls, globally, which outputs a document is split into:

  • Png: render pdf pages and svg documents to png.
  • None: none of the above. Only the source document is emitted.
  • All: all of the above. This is the default.

Omitted outputs are skipped before any rendering, so no work is done for them. The source document target (pdf or svg) is always emitted; use VerifierSettings.ExcludeTargets("pdf") to exclude it. Png, webp, and tiff image files are not affected. To emit only the source document, pass ImageMagickOutputs.None:

[ModuleInitializer]
public static void Init() =>
    // Only emit the source document. Skip rendering to png.
    VerifyImageMagick.Initialize(ImageMagickOutputs.None);

snippet source | anchor

PDF converter

To register only the pdf to png converter:

VerifyImageMagick.RegisterPdfToPngConverter();

Verify a file

[Test]
public Task VerifyPdf() =>
    VerifyFile("sample.pdf");

snippet source | anchor

Verify a Stream

[Test]
public Task VerifyPdfStream()
{
    var stream = new MemoryStream(File.ReadAllBytes("sample.pdf"));
    return Verify(stream, "pdf");
}

snippet source | anchor

Result

Samples.VerifyPdf#00.verified.png:

Image Comparers

The following will use ImageMagick to compare the images instead of the default binary comparison.

[Test]
public Task CompareImage() =>
    VerifyFile("sample.jpg");

snippet source | anchor

Register all comparers

All comparers can be registered:

VerifyImageMagick.RegisterComparers();

Override transparent background

For images with a transparent background, that background can be overridden:

[Test]
public Task BackgroundColor() =>
    VerifyFile("transparent.png")
        .ImageMagickBackground(MagickColors.Blue);

snippet source | anchor

Open password-protected PDFs

For password-protected PDF, the password can be provided to allow verification:

[Test]
public Task PdfPassword() =>
    VerifyFile("password.pdf")
        .ImageMagickPdfPassword("password")
        .ExcludeTargets("pdf");

snippet source | anchor

Icon

Swirl designed by Philipp Petzka from The Noun Project.

About

Extends Verify to allow verification of documents via ImageMagick.NET.

Resources

Code of conduct

Stars

8 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages