Barkod Kontrol Toplamlarını Doğrulama ve Format Bilinçli Okuma Nasıl Kullanılır

This article was translated from English: Does it need improvement?
Translated
View the article in English

Barkod kontrol toplamları, yer değiştirme hatalarını tespit etmeye yardımcı olur. Örneğin, bir EAN-13 etiketindeki tek bir yer değiştirilmiş rakam, bir paketin yanlış depoya gönderilmesine neden olabilir. Format bilgili okuma, kod çözücüyü beklenen sembolojilere sınırlayarak ek bir doğrulama katmanı sağlar. Bu yaklaşım, arka plan gürültüsünden kaynaklanan yanlış pozitifleri azaltır ve gereksiz format algılayıcıları atlatarak tarama süresini kısaltır.

IronBarcode otomatik olarak, kod çözme sırasında kontrol toplamı doğrulaması yapar. Her sembolün kontrol rakamı algoritması varsayılan olarak çalışır ve başarısız olan barkodlar, sonuçlar döndürülmeden önce elenir. BarcodeReaderOptions.ExpectBarcodeTypes özelliği okumaları belirli biçimlerle sınırlarken, RemoveFalsePositive belirsiz okumalar için ikincil bir tarama ekler.

Bu kılavuzda, BarCode sağlama toplamlarının nasıl doğrulanacağı, okumaların beklenen biçimlerle sınırlandırılacağı ve her iki tekniğin BarcodeReaderOptions kullanılarak katmanlı bir kalite kontrolü altında birleştirileceği açıklanmaktadır.

Hızlı Başlangıç: Kontrol Toplamı ve Format Kısıtlamaları ile Barkodları Doğrulayın

BarcodeReaderOptions'yi ExpectBarcodeTypes ve RemoveFalsePositive ile yapılandırarak, otomatik sağlama toplamı doğrulaması ile okumaları beklenen sembolojilerle sınırlayın.

:path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/quickstart.cs
using IronBarCode;

// Format-constrained read with false-positive removal.
// Limit the decoder to EAN-13 and Code128; checksums are
// validated automatically and failures are silently discarded.
var options = new BarcodeReaderOptions
{
    ExpectBarcodeTypes  = BarcodeEncoding.EAN13 | BarcodeEncoding.Code128,
    RemoveFalsePositive = true,
    Speed               = ReadingSpeed.Balanced
};

BarcodeResults results = BarcodeReader.Read("label.png", options);
Imports IronBarCode

' Format-constrained read with false-positive removal.
' Limit the decoder to EAN-13 and Code128; checksums are
' validated automatically and failures are silently discarded.
Dim options As New BarcodeReaderOptions With {
    .ExpectBarcodeTypes = BarcodeEncoding.EAN13 Or BarcodeEncoding.Code128,
    .RemoveFalsePositive = True,
    .Speed = ReadingSpeed.Balanced
}

Dim results As BarcodeResults = BarcodeReader.Read("label.png", options)
$vbLabelText   $csharpLabel

Barkod Kontrol Toplamlarını Nasıl Doğrularım?

IronBarcode, her sembolün spesifikasyonuna göre, kod çözümleme sırasında kontrol toplamlarını doğrular. Örneğin, bir EAN-13 barkodu okunurken, ilk 12 rakamdan Mod10 kontrol rakamı hesaplanır ve 13. rakamla karşılaştırılır. Rakamlar eşleşmezse, BARCODE sessizce reddedilir ve BarcodeResults koleksiyonunda görünmez. Bu yaklaşım, UPC-A, UPC-E, EAN-8, Kod128, ITF ve diğerleri dahil olmak üzere kontrol rakamı zorunlu tüm formatlara uygulanır.

Bu zımni model, açık bir anahtar sunan kütüphanelerden farklıdır. Aşağıdaki tablo iki yaklaşımı karşılaştırır:

Kontrol Toplamı Doğrulama Modeli Karşılaştırması: IronBarcode vs. Aspose.BarCode
BoyutIronBarcodeAspose.BarCode
Doğrulama tetikleyicisiOtomatik; her kod çözümleme sırasında çalışırAçık: Kontrol ToplamıValidation.On / Off / Default
Geliştirici eylem gerektiren durumlarYok; geçersiz barkodlar sonuçlardan çıkarılırOkumadan önce BarcodeSettings.Kontrol ToplamıValidation ayarlayın
Kontrol toplamı devre dışı bırakmaAçığa çıkmaz; kontrol toplamları zorunlu formatlar için her zaman uygulanırEvet; Kontrol ToplamıValidation.Off doğrulamayı atlar
Opsiyonel kontrol toplamı formatları (Kod39)Düşük kaliteli okumaları filtrelemek için Confidence + RemoveFalsePositive kullanırEnableKontrol Toplamı.Evet ile açıkça etkinleştirilir
Başarısızlık davranışıBarkod sonuçlardan sessizce çıkartılırBarkod, manuel inceleme için ayrı bir kontrol toplamı değeriyle görünebilir

Kod39 gibi isteğe bağlı sağlama toplamına sahip sembolojiler için, kütüphane sağlama toplamı anahtarı yerine güvenlilik puanlaması ve RemoveFalsePositive kullanır.

Giriş

Bir Kod128 depo raf etiketi (başarı yolu) ve barkod içermeyen boş bir görüntü (başarısızlık yolu).

Kod128 barcode encoding RACK-A1-LOT-7382 used as the warehouse rack scan input

warehouse-rack.png (başarı yolu)

Blank white image with no barcode to trigger the empty result path

blank-no-barcode.png (başarısızlık yolu — barkod yok)

:path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/checksum-confidence.cs
using IronBarCode;

// Constrain reads to 1D formats and enable secondary verification.
// ConfidenceThreshold rejects decodes where the ML detector falls below 85%,
// acting as a quality gate for optional-checksum symbologies like Code39.
var options = new BarcodeReaderOptions
{
    ExpectBarcodeTypes  = BarcodeEncoding.AllOneDimensional,
    RemoveFalsePositive = true,
    ConfidenceThreshold = 0.85,
    Speed               = ReadingSpeed.Detailed
};

BarcodeResults results = BarcodeReader.Read("warehouse-rack.png", options);

foreach (BarcodeResult result in results)
{
    // Each result has passed checksum validation (mandatory formats)
    // and the 85% confidence threshold, so no additional filtering is needed.
    Console.WriteLine($"[{result.BarcodeType}] {result.Value}  page={result.PageNumber}");
}

if (results.Count == 0)
{
    Console.Error.WriteLine("No valid barcodes found. Possible causes:");
    Console.Error.WriteLine("  - Check digit mismatch (barcode silently rejected)");
    Console.Error.WriteLine("  - Confidence below 85% threshold");
    Console.Error.WriteLine("  - Format not in ExpectBarcodeTypes");
}
Imports IronBarCode

' Constrain reads to 1D formats and enable secondary verification.
' ConfidenceThreshold rejects decodes where the ML detector falls below 85%,
' acting as a quality gate for optional-checksum symbologies like Code39.
Dim options As New BarcodeReaderOptions With {
    .ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
    .RemoveFalsePositive = True,
    .ConfidenceThreshold = 0.85,
    .Speed = ReadingSpeed.Detailed
}

Dim results As BarcodeResults = BarcodeReader.Read("warehouse-rack.png", options)

For Each result As BarcodeResult In results
    ' Each result has passed checksum validation (mandatory formats)
    ' and the 85% confidence threshold, so no additional filtering is needed.
    Console.WriteLine($"[{result.BarcodeType}] {result.Value}  page={result.PageNumber}")
Next

If results.Count = 0 Then
    Console.Error.WriteLine("No valid barcodes found. Possible causes:")
    Console.Error.WriteLine("  - Check digit mismatch (barcode silently rejected)")
    Console.Error.WriteLine("  - Confidence below 85% threshold")
    Console.Error.WriteLine("  - Format not in ExpectBarcodeTypes")
End If
$vbLabelText   $csharpLabel

Çıktı

Başarı Yolu

Console çıktı, Kod128 RACK-A1-LOT-7382'nin güven eşiğini aştığını gösteriyor

Depo rafı BARCODE'u, sayfa 0'da RACK-A1-LOT-7382 olarak geri döndü. %85 güven eşiğini aştı ve sağlama toplamı doğrulamasını geçti, bu nedenle BarcodeResults olarak görünür.

Başarısızlık Yolu

Console çıktı, boş görüntü girdisi için geçerli bir barkod bulamadı

ConfidenceThreshold değerini varsayılan 0,7 değerinin üzerine çıkarmak, Kod39 gibi isteğe bağlı sağlama toplamı sembolojileri için bu eşiği daha da sıkılaştırır.

Kontrol toplamı doğrulaması kapsandıktan sonra, sonraki adım okuyucuyu işlem hattınızın beklediği barkod formatlarına sınırlamaktır.


Format Bilinçli Barkod Okuma Nasıl Kullanılır?

BarcodeEncoding enum, bitwise OR operatörü kullanılarak birden fazla formatın birleştirilmesine olanak tanıyan bir bayrak türüdür. ExpectBarcodeTypes ayarı, okuyucuyu bu biçimlerle sınırlar ve diğerleri için algılamayı atlar.

Ortak BarkodKodlama Değerleri
DeğerKategoriAçıklamaKontrol Toplamı
BarcodeEncoding.AllMetaDesteklenen tüm formatlar (varsayılan davranış)Format başına
BarcodeEncoding.AllOneDimensionalMetaTüm lineer (1D) formatlar dahil üst üste binenleriFormat başına
BarcodeEncoding.AllTwoDimensionalMetaTüm matris/ızgara (2D) formatlarıFormat başına
BarcodeEncoding.Kod1281DYüksek yoğunluklu alfanümerik (lojistik, nakliye)Zorunlu (ağırlıklı Mod103)
BarcodeEncoding.EAN131DPerakende ürün tanımlama, 13 rakamZorunlu (Mod10)
BarcodeEncoding.QRCode2DYüksek kapasiteli matris (URL'ler, yapılandırılmış veriler)Reed-Solomon EEC
BarcodeEncoding.Kod391DAlfanümerik (savunma, otomotiv)Opsiyonel (Mod43)
BarcodeEncoding.UPCA1DKuzey Amerika perakendeciliği, 12 rakamZorunlu (Mod10)
BarcodeEncoding.DataMatrix2DKompakt matris (elektronik, eczacılık)Reed-Solomon EEC
BarcodeEncoding.PDF4172DÜst üste kapanan (kimlik kartları, ulaşım)Reed-Solomon EEC

Hızın ötesinde, format setini sınırlamak bir doğrulama kapısı görevi görür: herhangi bir listelenmemiş sembolojiye sahip barkodlar, fiziksel olarak görüntüde mevcut olsa bile sonuçlardan dışlanır.

Giriş

Bir Kod128 nakliye etiketi (başarı yolu) ve Kod128 yalnızca kısıtlamasına uymayan bir QR kodu (başarısızlık yolu).

Kod128 barcode encoding SHIP-2024-00438 used as the shipping label input

shipping-label.png (başarı yolu — Kod128 kısıtlamayı karşılar)

QR code used as the format-mismatch failure path for the Kod128-only constrained read

qr-format-mismatch.png (başarısızlık yolu — QR Kod128 yalnızca filtre tarafından reddedildi)

:path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/format-constrained.cs
using IronBarCode;

// Constrained read: only Code128 barcodes are returned.
// Faster because the reader skips all other format detectors.
var constrainedOptions = new BarcodeReaderOptions
{
    ExpectBarcodeTypes     = BarcodeEncoding.Code128,
    Speed                  = ReadingSpeed.Faster,
    ExpectMultipleBarcodes = false
};

// Broad read: all supported formats are scanned.
// Useful for verification or when the image format is unknown.
var broadOptions = new BarcodeReaderOptions
{
    ExpectBarcodeTypes     = BarcodeEncoding.All,
    Speed                  = ReadingSpeed.Detailed,
    ExpectMultipleBarcodes = true
};

string imagePath = "shipping-label.png";

BarcodeResults constrained = BarcodeReader.Read(imagePath, constrainedOptions);
Console.WriteLine($"Constrained: {constrained.Count} Code128 barcode(s) found");

BarcodeResults broad = BarcodeReader.Read(imagePath, broadOptions);
Console.WriteLine($"Broad: {broad.Count} barcode(s) found across all formats");

foreach (BarcodeResult result in broad)
{
    Console.WriteLine($"  [{result.BarcodeType}] {result.Value}");
}
Imports IronBarCode

' Constrained read: only Code128 barcodes are returned.
' Faster because the reader skips all other format detectors.
Dim constrainedOptions As New BarcodeReaderOptions With {
    .ExpectBarcodeTypes = BarcodeEncoding.Code128,
    .Speed = ReadingSpeed.Faster,
    .ExpectMultipleBarcodes = False
}

' Broad read: all supported formats are scanned.
' Useful for verification or when the image format is unknown.
Dim broadOptions As New BarcodeReaderOptions With {
    .ExpectBarcodeTypes = BarcodeEncoding.All,
    .Speed = ReadingSpeed.Detailed,
    .ExpectMultipleBarcodes = True
}

Dim imagePath As String = "shipping-label.png"

Dim constrained As BarcodeResults = BarcodeReader.Read(imagePath, constrainedOptions)
Console.WriteLine($"Constrained: {constrained.Count} Code128 barcode(s) found")

Dim broad As BarcodeResults = BarcodeReader.Read(imagePath, broadOptions)
Console.WriteLine($"Broad: {broad.Count} barcode(s) found across all formats")

For Each result As BarcodeResult In broad
    Console.WriteLine($"  [{result.BarcodeType}] {result.Value}")
Next
$vbLabelText   $csharpLabel

Çıktı

Başarı Yolu

Console çıktı, kısıtlı okuma 1 Kod128 barkod bulduğunu ve geniş okuma bunu onayladığını gösteriyor

Nakliye etiketinin değeri SHIP-2024-00438'dir. Kısıtlı okuma, filtresinün beklediği şey olduğu için Kod128'i hemen alır ve geniş okuma aynı sonucu tüm formatlarda doğrular.

Başarısızlık Yolu

Console çıkışı, kısıtlı okumanın bir QR kodu görüntüsü için 0 sonuç döndürdüğünü gösteriyor

Bir kısıtlı okumadan gelen boş sonuçlar bir doğrulama sinyalidir, hata değil; farkı inceleme için kaydedin.

Barkod türlerini karıştıran işlem hatları için (örneğin, bir EAN-13 ürün kodu ve bir Kod128 izleme numarası içeren paket fişi), beklenen formatları birleştirin:

:path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/multi-format-combine.cs
using IronBarCode;

// Combine multiple format flags with | to scan for more than one symbology
// in a single pass. Each BarcodeResult.BarcodeType identifies which format
// was decoded, enabling downstream routing logic per symbology.
var options = new BarcodeReaderOptions
{
    ExpectBarcodeTypes     = BarcodeEncoding.EAN13 | BarcodeEncoding.Code128,
    ExpectMultipleBarcodes = true
};
Imports IronBarCode

' Combine multiple format flags with Or to scan for more than one symbology
' in a single pass. Each BarcodeResult.BarcodeType identifies which format
' was decoded, enabling downstream routing logic per symbology.
Dim options As New BarcodeReaderOptions With {
    .ExpectBarcodeTypes = BarcodeEncoding.EAN13 Or BarcodeEncoding.Code128,
    .ExpectMultipleBarcodes = True
}
$vbLabelText   $csharpLabel

Döndürülen her BarcodeResult.BarcodeType, hangi formatın kodunun çözüldüğünü belirtir ve aşağı akış yönlendirmesini mümkün kılar.

Hangi Sembolojiler Kontrol Toplamı Doğrulamayı Destekler?

Tüm barkod formatları, kontrol toplamlarını aynı şekilde kullanmaz. Aşağıdaki tablo, yaygın sembolleri hata algılama özellikleriyle eşleştirir ve bu, her format için ConfidenceThreshold ve RemoveFalsePositive değerlerinin ne kadar agresif ayarlanması gerektiğini gösterir:

Sembolojiye Göre Kontrol Toplamı Özellikleri
SembolojiKontrol Toplamı TürüZorunlu?Öneri
EAN-13 / EAN-8Mod10EvetVarsayılan ayarlar yeterli; sağlama toplamı her zaman zorunludur
UPC-A / UPC-EMod10EvetVarsayılan ayarlar yeterli; kontrol rakamı yazma sırasında otomatik düzeltilir
Kod128Ağırlıklı Mod103EvetVarsayılan ayarlar yeterli; spesifikasyona göre zorunlu
Kod39Mod43İsteğe bağlıGüven Eşiği'ni 0.8+'e yükseltin ve Yanlış Pozitifleri Kaldır'ı etkinleştirin
KodaBarMod16İsteğe bağlıKod39 ile aynı; kalite kapısı olarak güveni kullanın
ITFMod10İsteğe bağlıArdışık biçimler için Yanlış Pozitifleri Kaldır'ı etkinleştirin
QR Kodu / Veri MatrisiReed-Solomon EECHer zamanYapısal hata düzeltme; ek yapılandırma gerekmez
PDF417Reed-Solomon EECHer zamanQR/DataMatrix ile aynı; hata düzeltmesi doğaldır

QR, DataMatrix ve PDF417 gibi 2D sembolojiler için hata düzeltme kodlama yapısına entegre edilmiştir. Bu formatlar, basit bir kontrol rakamına bağlı kalmadan kısmi hasardan kurtulabilir. ConfidenceThreshold, ML algılama aşamasında hala geçerlidir, ancak kod çözme aşaması sembolojinin yerleşik yedekliliğinden yararlanır.

Her iki teknik de anlaşıldığına göre, bunları tek bir üretime hazır doğrulama modelinde birleştirelim.


Çekimleri Format Kısıtlamalarıyla Nasıl Birleştiririz?

Üretime hazır desen, ExpectBarcodeTypes, RemoveFalsePositive, ConfidenceThreshold ve Speed öğelerini tek bir BarcodeReaderOptions nesnesinde birleştirir. Birlikte katmanlı bir kapı oluştururlar: format kısıtlamaları arama alanını daraltır, sağlama toplamı doğrulaması veri bütünlüğünü sağlar, güvenlik eşiği sınırlandırması marjinal decode leri filtreler ve yanlış pozitiflerin kaldırılması ikincil bir doğrulama turu ekler.

Giriş

Başarı yolu olarak kullanılan pos-scans/ dizininden üç POS tarama BARCODE: iki EAN-13 ve bir UPC-A. Hata yolu olarak bir Kod128 depo raf etiketi kullanılır — EAN-13/UPC-A kısıtlaması bunu reddeder ve REJECT satırını günlüğe kaydeder.

EAN-13 barcode encoding 5901234123471 used as POS scan input 1

pos-scan-1.png (başarılı)

EAN-13 barcode encoding 4006381333931 used as POS scan input 2

pos-scan-2.png (başarılı)

UPC-A barcode encoding 012345678905 used as POS scan input 3

pos-scan-3.png (başarılı)

Kod128 barcode encoding RACK-A1-LOT-7382 used as the combined-validation failure path input

warehouse-rack.png (başarısız — Kod128 reddedildi)

:path=/static-assets/barcode/content-code-examples/how-to/checksum-and-format-validation/combined-validation.cs
using IronBarCode;

// Layered validation for retail POS: EAN-13, UPC-A, and UPC-E only.
// Each property adds a distinct filter to the read pipeline.
var options = new BarcodeReaderOptions
{
    // Layer 1: format constraint, accept only retail symbologies
    ExpectBarcodeTypes = BarcodeEncoding.EAN13 | BarcodeEncoding.UPCA | BarcodeEncoding.UPCE,

    // Layer 2: confidence threshold, reject decodes below 80%
    ConfidenceThreshold = 0.8,

    // Layer 3: false-positive removal, runs a secondary verification pass
    RemoveFalsePositive = true,

    Speed                  = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = false,

    // Require 3 agreeing scan lines to reduce phantom reads from noisy images
    MinScanLines = 3
};

string[] scanFiles = Directory.GetFiles("pos-scans/", "*.png");

foreach (string file in scanFiles)
{
    BarcodeResults results = BarcodeReader.Read(file, options);

    if (results.Count == 0)
    {
        // No barcode passed all validation layers
        Console.Error.WriteLine($"REJECT {Path.GetFileName(file)}: "
            + "no valid EAN-13/UPC barcode (checksum, confidence, or format mismatch)");
        continue;
    }

    BarcodeResult primary = results.First();

    // Post-read assertion: verify the decoded format matches expectations.
    // ExpectBarcodeTypes already constrains the reader; this check documents
    // intent and surfaces unexpected results during future changes.
    if (primary.BarcodeType != BarcodeEncoding.EAN13
        && primary.BarcodeType != BarcodeEncoding.UPCA
        && primary.BarcodeType != BarcodeEncoding.UPCE)
    {
        Console.Error.WriteLine($"UNEXPECTED FORMAT {Path.GetFileName(file)}: "
            + $"got {primary.BarcodeType}, expected EAN-13/UPC");
        continue;
    }

    Console.WriteLine($"OK {Path.GetFileName(file)}: [{primary.BarcodeType}] {primary.Value}");
}
Imports IronBarCode
Imports System.IO

' Layered validation for retail POS: EAN-13, UPC-A, and UPC-E only.
' Each property adds a distinct filter to the read pipeline.
Dim options As New BarcodeReaderOptions With {
    ' Layer 1: format constraint, accept only retail symbologies
    .ExpectBarcodeTypes = BarcodeEncoding.EAN13 Or BarcodeEncoding.UPCA Or BarcodeEncoding.UPCE,

    ' Layer 2: confidence threshold, reject decodes below 80%
    .ConfidenceThreshold = 0.8,

    ' Layer 3: false-positive removal, runs a secondary verification pass
    .RemoveFalsePositive = True,

    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = False,

    ' Require 3 agreeing scan lines to reduce phantom reads from noisy images
    .MinScanLines = 3
}

Dim scanFiles As String() = Directory.GetFiles("pos-scans/", "*.png")

For Each file As String In scanFiles
    Dim results As BarcodeResults = BarcodeReader.Read(file, options)

    If results.Count = 0 Then
        ' No barcode passed all validation layers
        Console.Error.WriteLine($"REJECT {Path.GetFileName(file)}: " &
            "no valid EAN-13/UPC barcode (checksum, confidence, or format mismatch)")
        Continue For
    End If

    Dim primary As BarcodeResult = results.First()

    ' Post-read assertion: verify the decoded format matches expectations.
    ' ExpectBarcodeTypes already constrains the reader; this check documents
    ' intent and surfaces unexpected results during future changes.
    If primary.BarcodeType <> BarcodeEncoding.EAN13 AndAlso
       primary.BarcodeType <> BarcodeEncoding.UPCA AndAlso
       primary.BarcodeType <> BarcodeEncoding.UPCE Then
        Console.Error.WriteLine($"UNEXPECTED FORMAT {Path.GetFileName(file)}: " &
            $"got {primary.BarcodeType}, expected EAN-13/UPC")
        Continue For
    End If

    Console.WriteLine($"OK {Path.GetFileName(file)}: [{primary.BarcodeType}] {primary.Value}")
Next
$vbLabelText   $csharpLabel

Çıktı

Başarı Yolu

Konsol çıktısı, tüm 3 POS tarama barkodlarının OK statüsüne sahip kabul edildiğini ve decode edilmiş değerleri gösteriyor

Üçü de POS tarama görüntüleri geçti. Okuyucu 5901234123471, 4006381333931 ve 012345678905 değerlerini döndürdü. Her biri EAN13| UPCA| UPCE filtresiyle eşleşti, geçerli bir Mod10 sağlama toplamı vardı ve güven 0.8'in üstündeydi.

Başarısızlık Yolu

Konsol çıktısı, EAN-13/UPC-A filtresi tarafından reddedilen depo rafı Kod128 barkodunu gösteriyor

MinScanLines değerini 3 olarak ayarlamak, bir 1D BarCode'un geçerli olması için gereken minimum eşleşen tarama satırı sayısını artırır; varsayılan 2'dir. Bu değeri artırmak, gürültülü tarama hatlarından yanlış okuma riskini azaltır ancak ince veya kısmen tahrip olmuş barkodların kaçırılmasına neden olabilir. Temiz basılı etiketlerin bulunduğu perakende POS ortamlarda, 3 değeri doğrulamayı güçlendiren ve geçiş hızını etkilemeyen muhafazakar bir seçimdir.

Okuma sonrası BarcodeType doğrulaması derinlemesine bir savunmadır: ExpectBarcodeTypes zaten filtreleme yapar, ancak açık kontrol niyeti belgeler ve çalışma zamanı maliyeti olmadan yapılandırma sapmalarını yakalar. Hız ayarlaması için ReadingSpeed.Faster temiz makine baskılı etiketlere uygundur; Detailed ve ExtremeDetail, daha uzun tarama süreleri karşılığında hasarlı veya yetersiz aydınlatılmış BARCODE'ları kurtarır.


Sonraki Adımlarım Neler?

Bu makale, IronBarcode'un örtük sağlama toplamı doğrulama modelini, format kısıtlamalı okumalar için BarcodeEncoding bayrakları enumunu ve ExpectBarcodeTypes, ConfidenceThreshold, RemoveFalsePositive ve MinScanLines'yi katmanlı kalite geçitleri olarak kullanan birleşik bir doğrulama desenini ele almıştır.

Daha fazla okuma için şu kaynaklara göz atın:

Ücretsiz bir deneme lisansı alın canlı ortamda her özelliği test etmek için veya lisans seçeneklerini görüntüleyin üretim için hazır olduğunda.

Sıkça Sorulan Sorular

Barkod kontrol toplam doğrulaması nedir?

Barkod kontrol toplam doğrulaması, barkod verilerinin doğruluğunu kontrol toplamının barkod içinde kodlanmış olan değerle karşılaştırılarak doğrulandığı bir süreçtir. Bu, tarama sürecindeki hataların tespit edilmesine yardımcı olur.

IronBarcode kontrol toplam doğrulamasını nasıl ele alır?

IronBarcode, barkod verilerinin kontrol toplamını hesaplayarak ve bunu kodlanmış kontrol toplamıyla karşılaştırarak kontrol toplam doğrulamasını dolaylı olarak ele alır, tarama sürecinde veri bütünlüğünü sağlar.

BarcodeEncoding filtreleri nedir?

IronBarcode'daki BarcodeEncoding filtreleri, tarama sırasında hangi barkod formatlarının okunacağını veya göz ardı edileceğini belirtmenize olanak tanır ve belirli barkod türlerine odaklanarak daha doğru ve verimli barkod işlemleri gerçekleştirmenizi sağlar.

IronBarcode birleşik doğrulama yapabilir mi?

Evet, IronBarcode, tarama sürecinde hem kontrol toplamını hem de barkodların formatını kontrol ederek birleşik doğrulama yapabilir, ve böylece sadece geçerli ve doğru formatlanmış barkodların işlenmesini sağlar.

C#'ta IronBarcode ile format kısıtlı barkod okuma mümkün mü?

Evet, IronBarcode, dahil etmek veya hariç tutmak istediğiniz formatları belirterek barkod okumalarınızı kısıtlamanıza olanak tanır, böylece uygulamanız sadece ilgili barkod türlerini işler.

Barkod işleminde format-destekli okuma neden önemlidir?

Format-destekli okuma önemlidir çünkü uygulamanızın sadece belirli türdeki barkodları işlemesine olanak tanır, böylece ilgisiz veya desteklenmeyen barkod formatlarını göz ardı ederek hız ve doğruluğu artırır.

IronBarcode'da format-destekli okuma nasıl uygulanır?

IronBarcode'da format-destekli okuma uygulamak için BarcodeEncoding filtrelerini kullanarak okumak istediğiniz barkod formatlarını belirtin. Bu, kütüphanenin API'si aracılığıyla yapılabilir ve barkod tarama gereksinimlerinizi hassas bir şekilde kontrol etmenizi sağlar.

Barkod doğrulaması için IronBarcode kullanmanın faydaları nelerdir?

IronBarcode, barkod doğrulaması için güvenli kontrol toplam doğrulama, format-destekli okuma ve geniş bir barkod standardı yelpazesini işleme becerisi dahil olmak üzere çeşitli avantajlar sunar, barkod işlemlerinde yüksek doğruluk ve esneklik sağlar.

Bir projede IronBarcode'u uygulamak için hangi programlama becerileri gereklidir?

IronBarcode'u bir projede uygulamak için temel C# programlama bilgisi yeterlidir, çünkü bu kütüphane, geliştiricilere rehberlik eden basit yöntemler ve kapsamlı belgeler sağlar.

IronBarcode, hem küçük projeler hem de büyük kurumsal uygulamalar için uygun mu?

IronBarcode, küçük projeler kadar geniş çaplı kurumsal uygulamalar için de uygun, ölçeklenebilir ve çok yönlü olacak şekilde tasarlanmıştır ve sağlam barkod çözümleri gerektiren uygulamalara hizmet eder.

Darrius Serrant
Tam Yığın Yazılım Mühendisi (WebOps)

Darrius Serrant, Miami Üniversitesi'nden Bilgisayar Bilimi alanında Lisans Derecesine sahip ve Iron Software'de Tam Yığın WebOps Pazarlama Mühendisi olarak çalışıyor. Genç yaşlardan itibaren kodlamaya çekildi, bilgisayar bilimi hem gizemli hem de erişilebilir olarak görüldü ve bu özellik, yaratıcılık ...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,240,258 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package BarCode
bir örnek çalıştır dizginizin barkoda dönüştüğünü izle.