Barcode Yönlendirmesi C#'da Nasıl Düzeltilir
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.
-
NuGet Paket Yöneticisi ile https://www.nuget.org/packages/BarCode yükleyin
PM > Install-Package BarCode -
Bu kod parçasını kopyalayıp çalıştırın.
var result = IronBarCode.BarcodeReader.Read("rotatedImage.png", new IronBarCode.BarcodeReaderOptions { AutoRotate = true }); -
Canlı ortamınızda test etmek için dağıtın
Bugün projenizde IronBarcode kullanmaya başlayın ücretsiz deneme ile
Minimal Is Akisi (5 adimda)
- Barcode yönlendirmesini düzeltmek için C# kütüphanesini indirin
- Set the `AutoRotate` property to true
- Hedeflenen barcode'ları ve QR kodlarını içe aktarın
- Okuma seçeneği ile barcode'ları ve QR kodlarını okuyun
- Sonuç barcode değerini alın
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.
20° Döndürme
45° Döndürme
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)
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
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)
}
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)
Yönlendirme Düzeltmesi için En İyi Uygulamalar
-
Varsayılan Davranış:
AutoRotatevarsayı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. -
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.
-
Ç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.
- Format-Specifik Hususlar:
AutoRotatetü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.

