Ստեղծեք և ճանաչեք DotCode շտրիխ կոդերը .NET-ում

Բլոգի կատեգորիա՝ Barcode.NET

13.08.2020

DotCode-ը երկչափ կետային կոդի սիմվոլոգիա է, որը նախատեսված է բարձր արագությամբ թանաքային կամ լազերային կետային տեխնոլոգիաներով տպագրելիս հուսալիորեն կարդալու համար:

DotCode շտրիխ կոդերի նմուշներ՝
Samples of DotCode barcodes

Կետային կոդը, ընդհանուր առմամբ, շտրիխ կոդի տեսակ է, որը կոդավորում է տվյալները անվանապես անջատ կետերի զանգվածով՝ ընտրված վայրերում՝ հնարավոր վայրերի կանոնավոր ցանցի ներսում: DotCode-ը կետային կոդ է, որի զանգվածը ուղղանկյունաձև է՝ բարձրությամբ "H" (տողեր) և լայնությամբ "W" (սյուներ): Տպագրության համար հասանելի են կետերի հնարավոր վայրերի ճիշտ կեսը, ինչպես օրինակ՝ շախմատի տախտակի վրա մուգ քառակուսիները:
DotCode շտրիխ կոդի մատրիցը չունի ֆիքսված կամ որոնման օրինաչափություններ: Տվյալների կետերի վայրերի զանգվածը շրջապատված է առնվազն 3Y բարձրությամբ կամ 3X լայնությամբ հանգիստ գոտիներով (տե՛ս ստորև նկարը):

DotCode շտրիխ կոդի կառուցվածքը՝
Structure of DotCode barcode


DotCode-ի ընդհանուր առանձնահատկությունները՝



VintaSoft Barcode .NET SDK-ն աջակցում է DotCode շտրիխ կոդերի ընթերցմանը և գրառմանը։

Ահա C# կոդը, որը ցույց է տալիս, թե ինչպես ստեղծել DotCode շտրիխ կոդը որպես ռաստրային պատկեր.
/// <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");
    }
}


Ահա C# կոդը, որը ցույց է տալիս, թե ինչպես ստեղծել DotCode շտրիխ կոդը վեկտորային տեսքով.
/// <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();
}


Ահա C# կոդը, որը ցույց է տալիս, թե ինչպես ստեղծել DotCode շտրիխ կոդը որպես 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();
}

Ահա C# կոդը, որը ցույց է տալիս, թե ինչպես ճանաչել DotCode շտրիխ կոդը պատկերում.
/// <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();
            }
        }
    }
}