C#'de Barkod Yönlendirmesini Nasıl Düzeltebilirim? | IronBarcode

Barcode Yönünü C# ile Nasıl Düzeltebilirim?

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

IronBarcode, manuel görüntü döndürme gerektirmeden her açıdan BarCode'ları algılayan ve okuyan yerleşik AutoRotate özelliğini kullanarak BarCode yönünü otomatik olarak düzeltir ve eğik veya döndürülmüş görüntülerden bile doğru BarCode okuma sağlar.

Barkod yönü, bir barkodun bir ürün ya da belge üstüne basılı veya görüntülenmiş olduğu açıyı ifade eder. Çeşitli açıları ayarlayarak farklı yerleşim ve tasarım gereksinimlerine uygun hale getirilebilir. En yaygın yönlendirme, barkodun soldan sağa hizalandığı, standart ve en yaygın kullanılan format olan yatay yönlendirmedir. Sıfır olmayan herhangi bir yönlendirme açısı, kütüphaneler için değeri tespit etme ve alma açısından zorluk teşkil eder. IronBarcode, barkodlar ve QR kodları için sıfır olmayan yönleri tespit etmek amacıyla otomatik yönlendirme düzeltmesi sunar.

Hızlı Başlangıç: Tek satırda otorotasyon görüntü düzeltmesi

Yönü ne kadar kolay düzeltebileceğinizi görelim: IronBarcode'un varsayılan olarak etkinleştirilmiş AutoRotate seçeneğini kullanarak, görüntüler döndürülmüş olsa bile BARCODE'ları doğru bir şekilde okumak için tek satırlık bir kod.

  1. IronBarcode aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package BarCode
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    var result = IronBarCode.BarcodeReader.Read("rotatedImage.png", new IronBarCode.BarcodeReaderOptions { AutoRotate = true });
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronBarcode kullanmaya başlayın

    arrow pointer

Uygulama İçerisinde Barkod Yönlendirmesini Nasıl Düzeltirim?

Otomatik yön düzeltmesini uygulamak için, AutoRotate içindeki BarcodeReaderOptions özelliğini true olarak ayarlayın. Bu özellik varsayılan olarak true'dur, bu yüzden bir şey yapmanız gerekmez. Sıfır olmayan yönlendirilmiş bir barkod görüntüsünü okumak, kutudan çıktığı gibi çalışmalıdır.

AutoRotate özelliği, QR kodları, Data Matrix ve geleneksel doğrusal BarCode'lar dahil olmak üzere çeşitli BarCode formatlarıyla çalışırken özellikle kullanışlıdır. İster görüntülerden barkod okuyun ister PDF belgelerinden tarayın, yönlendirme düzeltmesi güvenilir sonuçlar sağlar.

Aşağıdaki görüntüyü örneğimiz olarak kullanalım. Download the following 20° rotation and 45° rotation sample images.

Barcode rotated 20 degrees clockwise showing vertical stripes at an angle for orientation testing
Barcode rotated 45 degrees showing diagonal orientation requiring correction

AutoRotate'u Uygulamak İçin Hangi Koda İhtiyacım Var?

:path=/static-assets/barcode/content-code-examples/how-to/image-orientation-correct-autorotate.cs
using IronBarCode;
using System;

BarcodeReaderOptions myOptionsExample = new BarcodeReaderOptions()
{
    // Turn on auto rotation in ML detection
    AutoRotate = true,
};

var results = BarcodeReader.Read("rotate20.png", myOptionsExample);

// Print out the value
Console.WriteLine(results[0].Value);
Imports IronBarCode
Imports System

Private myOptionsExample As New BarcodeReaderOptions() With {.AutoRotate = True}

Private results = BarcodeReader.Read("rotate20.png", myOptionsExample)

' Print out the value
Console.WriteLine(results(0).Value)
$vbLabelText   $csharpLabel

AutoRotate özelliği, gelişmiş makine öğrenimi algoritmalarını kullanarak BarCode'un yönünü otomatik olarak algılar. Bu, tek bir görüntüde birden fazla barkod ile çalışırken veya çeşitli yönlendirmelere sahip görüntü gruplarını işlerken özellikle değerlidir.

Farklı Döndürme Açıları ile Çalışma

IronBarcode'un yönlendirme düzeltmesi, çeşitli döndürme açılarını sorunsuz bir şekilde işler. Aşağıda farklı döndürme açılarında barkod okuma işlemini gösteren bir örnek var:

using IronBarCode;
using System;
using System.Collections.Generic;

// Process multiple rotated images
var rotatedImages = new List<string> { "rotate20.png", "rotate45.png", "rotate90.png" };
var options = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Combine with other reading optimizations
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = false
};

foreach (var imagePath in rotatedImages)
{
    var results = BarcodeReader.Read(imagePath, options);
    if (results.Length > 0)
    {
        Console.WriteLine($"Image: {imagePath} - Barcode Value: {results[0].Value}");
        Console.WriteLine($"Barcode Type: {results[0].BarcodeType}");
        Console.WriteLine($"Rotation Applied: {results[0].WasRotated}");
    }
}
using IronBarCode;
using System;
using System.Collections.Generic;

// Process multiple rotated images
var rotatedImages = new List<string> { "rotate20.png", "rotate45.png", "rotate90.png" };
var options = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Combine with other reading optimizations
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = false
};

foreach (var imagePath in rotatedImages)
{
    var results = BarcodeReader.Read(imagePath, options);
    if (results.Length > 0)
    {
        Console.WriteLine($"Image: {imagePath} - Barcode Value: {results[0].Value}");
        Console.WriteLine($"Barcode Type: {results[0].BarcodeType}");
        Console.WriteLine($"Rotation Applied: {results[0].WasRotated}");
    }
}
Imports IronBarCode
Imports System
Imports System.Collections.Generic

' Process multiple rotated images
Dim rotatedImages As New List(Of String) From {"rotate20.png", "rotate45.png", "rotate90.png"}
Dim options As New BarcodeReaderOptions With {
    .AutoRotate = True,
    ' Combine with other reading optimizations
    .Speed = ReadingSpeed.Balanced,
    .ExpectMultipleBarcodes = False
}

For Each imagePath In rotatedImages
    Dim results = BarcodeReader.Read(imagePath, options)
    If results.Length > 0 Then
        Console.WriteLine($"Image: {imagePath} - Barcode Value: {results(0).Value}")
        Console.WriteLine($"Barcode Type: {results(0).BarcodeType}")
        Console.WriteLine($"Rotation Applied: {results(0).WasRotated}")
    End If
Next
$vbLabelText   $csharpLabel

Performans Hususları

AutoRotate varsayılan olarak etkindir, ancak bunun performans üzerindeki etkilerini anlamak, BARCODE okuma iş akışınızı optimize etmenize yardımcı olur. Özellik, IronBarcode'un okuma hızı seçenekleriyle verimli bir şekilde çalışır ve böylece uygulamanızın ihtiyaçlarına göre doğruluk ve performans arasında denge kurmanıza olanak tanır.

Yüksek hızlı işleme gerektiren uygulamalar için, AutoRotate'yi diğer optimizasyon teknikleriyle birleştirebilirsiniz:

var fastReadOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    Speed = ReadingSpeed.Faster,
    // Specify expected barcode types to improve performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Define crop region if barcode location is predictable
    CropArea = new System.Drawing.Rectangle(100, 100, 300, 300)
};
var fastReadOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    Speed = ReadingSpeed.Faster,
    // Specify expected barcode types to improve performance
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    // Define crop region if barcode location is predictable
    CropArea = new System.Drawing.Rectangle(100, 100, 300, 300)
};
Dim fastReadOptions As New BarcodeReaderOptions With {
    .AutoRotate = True,
    .Speed = ReadingSpeed.Faster,
    ' Specify expected barcode types to improve performance
    .ExpectBarcodeTypes = BarcodeEncoding.QRCode Or BarcodeEncoding.Code128,
    ' Define crop region if barcode location is predictable
    .CropArea = New System.Drawing.Rectangle(100, 100, 300, 300)
}
$vbLabelText   $csharpLabel

Görüntü Düzeltme Özellikleri ile Entegrasyon

AutoRotate, IronBarcode'un görüntü düzeltme filtreleriyle sorunsuz bir şekilde çalışır. Düşük kaliteli ve aynı zamanda döndürülmüş görüntülerle çalışırken, çoklu düzeltmeler uygulayabilirsiniz:

var advancedOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Apply additional image corrections
    ImageFilters = new ImageFilterCollection
    {
        new AdaptiveThresholdFilter(),
        new BrightnessFilter(1.2f),
        new ContrastFilter(1.5f)
    }
};

var results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions);
var advancedOptions = new BarcodeReaderOptions
{
    AutoRotate = true,
    // Apply additional image corrections
    ImageFilters = new ImageFilterCollection
    {
        new AdaptiveThresholdFilter(),
        new BrightnessFilter(1.2f),
        new ContrastFilter(1.5f)
    }
};

var results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions);
Imports System

Dim advancedOptions As New BarcodeReaderOptions With {
    .AutoRotate = True,
    ' Apply additional image corrections
    .ImageFilters = New ImageFilterCollection From {
        New AdaptiveThresholdFilter(),
        New BrightnessFilter(1.2F),
        New ContrastFilter(1.5F)
    }
}

Dim results = BarcodeReader.Read("low-quality-rotated-barcode.jpg", advancedOptions)
$vbLabelText   $csharpLabel

Yönlendirme Düzeltme İçin En İyi Uygulamalar

  1. Varsayılan Davranış: AutoRotate varsayılan olarak etkin olduğundan, daha önce devre dışı bırakmadıysanız veya etkin olduğundan emin olmak istemiyorsanız, genellikle bunu açıkça ayarlamanıza gerek yoktur.

  2. Kesme Bölgeleriyle Birleştirme: Performansı artırmak için kesme bölgeleri kullanırken, döndürülmüş barkodu yerleştirmek için kesme alanının yeterince büyük olduğundan emin olun.

  3. Çok İş Parçacıklı İşleme: AutoRotate iş parçacığı güvenlidir ve asenkron ve çok iş parçacıklı işlemlerle iyi çalışır, bu da onu yüksek hacimli BARCODE işleme uygulamaları için uygun hale getirir.

  4. Formata Özgü Hususlar: AutoRotate, desteklenen tüm BarCode formatlarıyla çalışsa da, PDF417 ve Data Matrix gibi bazı formatlar için formata özgü ek seçenekler faydalı olabilir.

Birçok durumda, döndürmenin düzeltilmesi yeterli olmayabilir ve bir filtre gerekli olabilir. Görüntü filtrelerini kullanmayı şu makalede öğrenin: "Görüntü Düzeltme Filtrelerini Kullanma."

Sıkça Sorulan Sorular

C# uygulamamda döndürülmüş barkod görüntülerini nasıl düzeltirim?

IronBarcode, yerleşik AutoRotate özelliği ile döndürülmüş barkod görüntülerini otomatik olarak düzeltir. Sadece BarkodReaderOptions'ta AutoRotate'yi true olarak ayarlayın (varsayılan olarak açık) ve kütüphane barkodları manuel döndürme gerektirmeden herhangi bir açıda algılar ve okur.

Hangi barkod yönlendirmeleri otomatik olarak düzeltilebilir?

IronBarcode'un AutoRotate özelliği, 20°, 45°, 90°, 180°, ve 270° döndürmeler dahil olmak üzere sıfır olmayan herhangi bir derece yönlenmesini algılayabilir ve düzeltebilir. Bu özellik QR kodları, Veri Matrisi ve geleneksel lineer barkodlar dahil çeşitli barkod formatları ile çalışır.

Eğimli barkodları ele almak için özel bir kod yazmam gerekiyor mu?

Özel bir kod gerekmez. IronBarcode'un AutoRotate özelliği varsayılan olarak etkinleştirilmiş olduğundan, yönlendirme düzeltmesi kutudan çıktığı gibi çalışır. Sadece bir satır kod yeterlidir: var result = IronBarCode.BarcodeReader.Read("dönmüşImage.png");

Yönlendirme düzeltmesi PDF belgeleri ile çalışabilir mi?

Evet, IronBarcode'un AutoRotate özelliği, PDF belgelerindeki barkodları tararken olduğu kadar görüntülerde de sorunsuz şekilde çalışır. Yönlendirme düzeltmesi, kaynak format ne olursa olsun güvenilir sonuçlar sağlar.

Otomatik yönlenme algılama hangi teknoloji ile güçlendirilmiştir?

IronBarcode, barkod yönlenmesini otomatik olarak algılamak için gelişmiş makine öğrenmesi algoritmaları kullanır. Bu akıllı yaklaşım, elle müdahale olmadan eğimli veya döndürülmüş görüntülerden bile doğru barkod okumayı sağlar.

Barkod operasyonlarında IronBarcode kullanmanın avantajları nelerdir?

IronBarcode, entegrasyon kolaylığı, birçok barkod formatını destekleme, yüksek kaliteli görüntü üretimi ve sağlam okuma yetenekleri gibi avantajlar sunarak, C#'ta barkod operasyonları için kapsamlı bir araçtır.

IronBarcode barkod görünümünü özelleştirme desteği sağlıyor mu?

Evet, IronBarcode, barkod görünümünü özelleştirmek için renk, boyut ve metin notları gibi geniş seçenekler sunar, bu da barkodları belirli tasarım gereksinimlerinize göre uyarlamanıza imkan tanır.

IronBarcode, iş süreçlerindeki verimliliği artırmaya nasıl yardımcı olabilir?

IronBarcode, hızlı ve doğru barkod üretimi ve okuma yeteneği sağlayarak, manuel veri girişi hatalarını azaltır ve envanter ile varlık takibini iyileştirerek iş süreçlerinin verimliliğini artırır.

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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

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.