C# ile Barkod Yönelimi Nasıl Düzeltilir | IronBarcode

Barcode Yönlendirmesi C#'da Nasıl Düzeltilir

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

IronBarcode, yerleşik AutoRotate özelliğini kullanarak barcode yönlendirmesini otomatik olarak düzeltir, herhangi bir açıdan barcode'ları algılar ve okur, böylece eğik veya döndürülmüş görüntülerden bile doğru barcode okuma sağlar.

Barcode yönlendirmesi, bir barcode'un bir ürün veya belgede basıldığı veya gösterildiği açı olarak tanımlanır. Farklı yerleşim ve tasarım gereksinimlerine uyum sağlamak için çeşitli açılara ayarlanabilir. En yaygın yönlendirme, barcode'un soldan sağa hizalandığı yataydır, bu standart ve en çok kullanılan formattır. Sıfır olmayan her yönlendirme derecesi, kütüphaneler için değeri algılamayı ve almayı zorlaştırır. IronBarcode, barcode'lar ve QR kodları için sıfır olmayan yönlendirmeleri algılamak üzere otomatik yönlendirme düzeltmesi sunar.

Hızlı Başlangıç: Bir satırda görüntü döndürme düzeltmesi

İşte yönlendirmeyi nasıl kolayca düzeltebileceğiniz: IronBarcode'un AutoRotate seçeneği—varsayılan olarak etkin—ile barcode'ları doğru şekilde okumak için döndürülmüş görüntülerde bile bir satır kod kullanarak.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/BarCode yükleyin

    PM > Install-Package BarCode
  2. Bu kod parçasını kopyalayıp çalıştırın.

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

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

    arrow pointer

Uygulamamda Barcode Yönlendirmesini Nasıl Düzeltebilirim?

Otomatik yönlendirme düzeltmesi uygulamak için, BarcodeReaderOptions içindeki AutoRotate özelliğini true olarak ayarlayın. Bu özellik varsayılan olarak true olarak ayarlanmıştır, bu yüzden hiçbir şey yapmanız gerekmez. Sıfır olmayan bir yönlendirilmiş barcode resmi okumak kutusundan çıktığı gibi çalışmalıdır.

AutoRotate özelliği, QR kodlar, Data Matrix ve geleneksel lineer barcode'lar dahil olmak üzere çeşitli barcode formatları ile çalışırken özellikle faydalıdır. Barcode'ları görüntülerden okurken veya PDF belgelerinden tararken, yönlendirme düzeltme güvenilir sonuçlar sağlar.

Aşağıdaki görüntüyü örnek 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 Özelliğini Uygulamak için Hangi Kodu Kullanmalıyım?

: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, barcode yönünü otomatik olarak algılamak için gelişmiş makine öğrenme algoritmalarını kullanır. Bu, tek bir görüntüdeki birden fazla barcode ile uğraşırken veya farklı yönlendirmelere sahip görüntülerin toplu işini 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 ele alır. İşte farklı döndürme açılarında barcode'ları okumanın gösterildiği bir örnek:

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 Dikkatleri

Varsayılan olarak AutoRotate etkinleştirilmişken, performans etkilerini anlamak barkod okuma iş akışınızı optimize etmenize yardımcı olur. Özellik, IronBarcode'un okuma hızı seçenekleri ile verimli bir şekilde çalışır, uygulamanızın ihtiyaçlarına göre doğruluk ve performans arasında bir denge kurmanıza izin verir.

Yüksek hızlı işlem gerektiren uygulamalar için AutoRotate'yi diğer optimizasyon teknikleri ile 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 çalışır. Döndürülmüş ve aynı zamanda düşük kaliteli görüntülerle uğraşırken, birden fazla düzeltmeyi 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üzeltmesi için En İyi Uygulamalar

  1. Varsayılan Davranış: AutoRotate varsayılan olarak etkinleştirildiğinden, daha önce devre dışı bırakmadıkça veya etkin olduğundan emin olmak istemediğiniz sürece genellikle açıkça ayarlamanız gerekmez.

  2. Kırpma Bölgeleri ile Birleştirme: Performansı artırmak için kırpma bölgelerini kullanırken, kırpma alanının döndürülmüş barcode'u karşılayacak kadar büyük olduğundan emin olun.

  3. Çok İşlemli İşleme: AutoRotate, iplik güvenlidir ve yüksek hacimli barcode işleme uygulamaları için uygun hale getirerek eş zamanlı ve çok iş parçacıklı işlemlerle iyi çalışır.

  4. Format-Specifik Hususlar: AutoRotate tüm desteklenen barkod formatları ile çalışırken, PDF417 ve Data Matrix gibi bazı formatlar ek format-specifik seçeneklerden fayda sağlayabilir.

Pek çok durumda, döndürmeyi düzeltmek yeterli olmayabilir ve bir filtre gereklidir. Aşağıdaki makaleden resim filtrelerini nasıl kullanacağınızı öğrenin: "Resim Düzeltme Filtrelerini Nasıl Kullanılır."

Sıkça Sorulan Sorular

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

IronBarcode, dönmüş barkod görüntülerini yerleşik AutoRotate özelliği ile otomatik olarak düzeltir. Sadece BarcodeReaderOptions içinde AutoRotate'i true olarak ayarlayın (bu varsayılan olarak etkin), ve kütüphane herhangi bir açıda barkodları tespit eder ve okur, manuel döndürme gerektirmez.

Hangi barkod yönleri otomatik olarak düzeltilebilir?

IronBarcode'un AutoRotate özelliği, 20°, 45°, 90°, 180° ve 270° gibi herhangi bir sıfır olmayan derece yönlendirmesini algılayabilir ve düzeltebilir. Özellik, QR kodları, Veri Matrisi ve geleneksel doğrusal barkodlar gibi çeşitli barkod formatlarıyla çalışır.

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

Özel koda ihtiyaç yoktur. IronBarcode'un AutoRotate özelliği varsayılan olarak etkindir, bu yüzden yönelj bağlantı kutusu yardımıyla otomasyonel düzeltme işlevsel çalışmaktadır. size sadece bir satır kod gereklidir: var result = IronBarCode.BarcodeReader.Read("rotatedImage.png");

Yön düzeltme PDF belgeleri ile çalışıyor mu?

Evet, IronBarcode'un AutoRotate özelliği, hem görsellerden hem de PDF belgelerinden barkod taramaları yaparken sorunsuzca çalışıyor. Yön düzeltmesi, kaynak formatı ne olursa olsun güvenilir sonuçlar sağlıyor.

Otomatik yön tespitini hangi teknoloji güçlendiriyor?

IronBarcode, barkod yönünü otomatik olarak algılamak için gelişmiş makine öğrenimi algoritmalarını kullanmaktadır. Bu akıllı yaklaşım, elle müdahaleye gerek kalmadan eğimli veya döndürülmüş görüntülerden bile doğru barkod okumasını sağlar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,169,908 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package BarCode
bir örnek çalıştırın dize barkod haline geldiğini görün.