Générer et reconnaître des codes-barres DotCode en .NET

Catégorie du blog: Code-barres.NET

13.08.2020

DotCode est une symbologie de code point bidimensionnelle conçue pour être lue de manière fiable lorsqu'elle est imprimée par des technologies jet d'encre ou laser à haute vitesse.

Exemples de codes-barres DotCode:
Samples of DotCode barcodes

Un code point, de manière générale, est un type de code-barres qui encode des données dans un tableau de points nominalement déconnectés à des emplacements choisis dans une grille régulière d'emplacements possibles. DotCode est un code point dont le tableau est de forme rectangulaire, de hauteur "H" (lignes) et de largeur "W" (colonnes). Exactement la moitié des emplacements possibles des points sont disponibles pour l'impression, comme les cases noires d'un damier. La matrice de code-barres
DotCode ne comporte ni motifs fixes ni motifs de recherche. Des zones de silence d'au moins 3Y de hauteur ou 3X de largeur entourent la matrice des points de données (voir image ci-dessous).

Structure du code-barres DotCode:
Structure of DotCode barcode


Caractéristiques générales du DotCode:



VintaSoft Barcode .NET SDK prend en charge la lecture et l'écriture des codes-barres DotCode.

Voici un exemple de code C# illustrant la génération d'un code-barres DotCode sous forme d'image raster:
/// <summary>
/// Generates DotCode barcode as raster image.
/// </summary>
public void GenerateDotCodeBarcodeAsRasterImage()
{
    // create the barcode writer
    Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter();

    // set barcode writer settings
    barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.DotCode;
    barcodeWriter.Settings.Value = "abc012345def";

    // get a barcode image
    using (System.Drawing.Image image = barcodeWriter.GetBarcodeAsBitmap())
    {
        // save the barcode image to a file
        image.Save("DotCodeBarcode.png");
    }
}


Voici du code C# qui montre comment générer un code-barres DotCode au format vectoriel:
/// <summary>
/// Generates DotCode barcode as graphics path.
/// </summary>
public System.Drawing.Drawing2D.GraphicsPath GenerateDotCodeBarcodeAsGraphicsPath()
{
    // create the barcode writer
    Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter();

    // set barcode writer settings
    barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.DotCode;
    barcodeWriter.Settings.Value = "012345abcde";

    // return barcode as graphics path
    return barcodeWriter.GetBarcodeAsGraphicsPath();
}


Voici du code C# qui montre comment générer un code-barres DotCode sous forme d'image SVG:
/// <summary>
/// Generates DotCode barcode as SVG image.
/// </summary>
public string GenerateDotCodeBarcodeAsSvgImage()
{
    // create the barcode writer
    Vintasoft.Barcode.BarcodeWriter barcodeWriter = new Vintasoft.Barcode.BarcodeWriter();

    // set barcode writer settings
    barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.DotCode;
    barcodeWriter.Settings.Value = "012345abcde";

    // return barcode as SVG image
    return barcodeWriter.GetBarcodeAsSvgFile();
}

Voici du code C# qui montre comment reconnaître un code-barres DotCode dans une image:
/// <summary>
/// Recognizes DotCode barcode in image.
/// </summary>
public void RecognizeDotCodeBarcode()
{
    // create barcode reader
    using (Vintasoft.Barcode.BarcodeReader reader = new Vintasoft.Barcode.BarcodeReader())
    {
        // specify that reader must search for DotCode barcodes
        reader.Settings.ScanBarcodeTypes = Vintasoft.Barcode.BarcodeType.DotCode;

        // ScanInterval must be lower than dot size of DotCode barcode, in pixels
        reader.Settings.ScanInterval = 3;

        // read barcodes from image file
        Vintasoft.Barcode.IBarcodeInfo[] barcodeInfos = reader.ReadBarcodes("DotCodeCodeBarcode.png");

        // if barcodes are not detected
        if (barcodeInfos.Length == 0)
        {
            Console.WriteLine("Barcodes are not found.");
        }
        // if barcodes are detected
        else
        {
            // get information about recognized barcodes

            Console.WriteLine(string.Format("{0} barcode(s) found:", barcodeInfos.Length));
            Console.WriteLine();
            for (int i = 0; i &lt; barcodeInfos.Length; i++)
            {
                Vintasoft.Barcode.IBarcodeInfo barcodeInfo = barcodeInfos[i];
                Console.WriteLine(string.Format("[{0}:{1}]", i + 1, barcodeInfo.BarcodeType));
                Console.WriteLine(string.Format("Value:      {0}", barcodeInfo.Value));
                Console.WriteLine(string.Format("Region:     {0}", barcodeInfo.Region));
                Console.WriteLine();
            }
        }
    }
}