/dotnet-mrz-sdk

A .NET MRZ SDK built with Dynamsoft C++ Label Recognizer SDK

Primary LanguageObjective-CMIT LicenseMIT

.NET MRZ Scanner SDK

The .NET Machine-readable Zone (MRZ) Scanner SDK is a C# wrapper for Dynamsoft Label Recognizer, supporting x64 Windows, x64 Linux, Android and iOS. It is used to recognize MRZ information from passport, Visa, ID card and travel documents.

License Activation

Click here to get a trial license key.

Supported Platforms

  • Windows (x64)
  • Linux (x64)
  • Android
  • iOS

API

  • public static void InitLicense(string license): Initialize the license. It must be called before creating the MRZ scanner object.
  • public static MrzScanner Create(): Create the MRZ scanner object.
  • public Result[]? DetectFile(string filename): Detect MRZ from an image file.
  • public Result[]? DetectBuffer(byte[] buffer, int width, int height, int stride, ImagePixelFormat format): Detect MRZ from a buffer.
  • public static string? GetVersionInfo(): Get SDK version number.

Usage

  • Set the license key:

    MrzScanner.InitLicense("LICENSE-KEY"); 
  • Initialize the MRZ scanner object:

    MrzScanner scanner = MrzScanner.Create();
  • Detect MRZ from an image file:

    Result[]? result = scanner.DetectFile(filename);
  • Detect MRZ from a buffer:

    Result[]? result = scanner.DetectBuffer(bytes, width, height, stride, MrzScanner.ImagePixelFormat.IPF_RGB_888);
  • Get SDK version number:

    string? version = MrzScanner.GetVersionInfo();
  • Parse the MRZ information:

    string[] lines = new string[_results.Length];
    var index = 0;
    foreach (Result result in _results)
    {
        lines[index++] = result.Text;
    }
    
    MrzResult info = MrzParser.Parse(lines);

Quick Start

using System;
using System.Runtime.InteropServices;
using Dynamsoft;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            MrzScanner.InitLicense("LICENSE-KEY"); 
            Console.WriteLine("Version: " + MrzScanner.GetVersionInfo());
            MrzScanner scanner = MrzScanner.Create();

            MrzScanner.Result[]? results = scanner.DetectFile("1.png");
            if (results != null)
            {
                foreach (MrzScanner.Result result in results)
                {
                    Console.WriteLine(result.Text);
                    Console.WriteLine(result.Points[0] + ", " +result.Points[1] + ", " + result.Points[2] + ", " + result.Points[3] + ", " + result.Points[4] + ", " + result.Points[5] + ", " + result.Points[6] + ", " + result.Points[7]);
                }
            }

        }
    }
}

Example

Building NuGet Package from Source Code

# build dll for desktop
cd desktop
dotnet build --configuration Release

# build dll for android
cd android/sdk
dotnet build --configuration Release

# build dll for ios
cd ios/sdk
dotnet build --configuration Release

# build nuget package
nuget pack .\MrzScannerSDK.nuspec