Jak ustawić region przycinania kodu kreskowego w C#

Jak zdefiniować obszar przycięcia BarCode w celu szybszego odczytu w języku C

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

Zdefiniuj obszar przycięcia za pomocą IronSoftware.Drawing.Rectangle, aby ograniczyć obszar skanowania IronBarcode do określonych obszarów obrazu, co znacznie poprawi wydajność odczytu kodów kreskowych i zmniejszy liczbę błędów poprzez skupienie się wyłącznie na istotnych obszarach.

Jedną z najważniejszych funkcji IronBarcode jest możliwość określenia obszarów przycięcia. Ta funkcja umożliwia IronBarcode odczytywanie tylko określonych kodów kreskowych lub obszarów wskazanych przez CropRegion na obrazie przy użyciu obiektu IronSoftware.Drawing.Rectangle. Korzystanie z tej funkcji nie tylko zmniejsza liczbę błędów podczas czytania, ale także poprawia wydajność czytania. Technika ta jest szczególnie przydatna podczas pracy z dokumentami wielostronicowymi lub obrazami o wysokiej rozdzielczości, w których lokalizacja BARCODE-ów jest przewidywalna.

Podczas przetwarzania obrazów zawierających wiele BarCodes lub złożone tło, zdefiniowanie obszaru przycięcia ma kluczowe znaczenie dla optymalizacji szybkości odczytu BarCodes. Ograniczając obszar skanowania, można osiągnąć prędkość przetwarzania nawet 5 razy większą niż w przypadku skanowania całych obrazów, jednocześnie zmniejszając liczbę fałszywych alarmów spowodowanych elementami innymi niż BarCode.

Szybki start: Zdefiniuj i zastosuj obszar przycięcia, aby szybciej odczytywać BARCODE-y

Wystarczy w kilka sekund utworzyć prostokąt przycinania i przesłać go do IronBarcode — bez dodatkowej konfiguracji, bez żadnych utrudnień. Zobacz, jak łatwo jest ograniczyć skanowanie do określonego obszaru obrazu za pomocą BarcodeReaderOptions.

  1. Install IronBarcode with NuGet Package Manager

    PM > Install-Package BarCode
  2. Skopiuj i uruchom ten fragment kodu.

    var results = IronBarCode.BarcodeReader.Read("image.png", new IronBarCode.BarcodeReaderOptions { CropArea = new IronSoftware.Drawing.Rectangle(x: 50, y: 100, width: 300, height: 150) });
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronBarcode w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer

Jak znaleźć współrzędne i rozmiar obszaru kadrowania na obrazie?

Istnieje wiele sposobów na znalezienie współrzędnych punktu na obrazie. Jednym ze sposobów jest załadowanie obrazu za pomocą aplikacji Paint na komputerze. Aby uzyskać pierwszą współrzędną obszaru przycięcia, przesuń kursor do wybranego pierwszego punktu, który będzie lewym górnym rogiem Rectangle, i zapisz współrzędne x, y podane przez aplikację w lewym dolnym rogu ekranu. Następnie zlokalizuj drugi punkt, który będzie znajdował się w prawym dolnym rogu Rectangle. Aby lepiej zrozumieć, zapoznaj się z poniższym obrazkiem.

W bardziej zaawansowanych przypadkach warto rozważyć użycie oprogramowania do edycji obrazów, takiego jak GIMP lub Photoshop, które zapewniają precyzyjne współrzędne pikseli i narzędzia pomiarowe. Niektórzy programiści wolą korzystać z internetowych narzędzi do wyszukiwania współrzędnych lub tworzyć proste narzędzia HTML/JavaScript, które wyświetlają współrzędne myszy po najechaniu kursorem na obraz.

Crop region diagram showing rectangular area with corner coordinates (x1,y1) and (x2,y2) and dimension calculations

Jakich narzędzi mogę użyć do określenia współrzędnych?

Wartości współrzędnych można następnie wykorzystać jako właściwości obiektu Rectangle. width obiektu można zdefiniować jako x2 - x1, natomiast height można zdefiniować jako y2 - y1. Podczas pracy z obrazami BarCode należy pamiętać, że współrzędne zaczynają się od lewego górnego rogu (0,0) i rosną w miarę przesuwania się w prawo (oś x) i w dół (oś y).

Kilka podejść do określania współrzędnych obejmuje:

  • Wbudowane narzędzia systemu operacyjnego: Windows Paint, macOS Preview
  • Narzędzia programistyczne przeglądarki: Sprawdzanie elementów na obrazach w sieci
  • Professional oprogramowanie: Adobe Photoshop, GIMP
  • Niestandardowe narzędzia: proste aplikacje do przeglądania współrzędnych
  • Funkcje debugowania IronBarcode: Eksport przetworzonych obrazów z nakładkami współrzędnych

Jak obliczyć wymiary prostokąta na podstawie współrzędnych?

Po ustaleniu dwóch punktów narożnych obliczenie wymiarów jest proste. Prostokąt wymaga czterech parametrów: współrzędnej x, współrzędnej y, szerokości i wysokości. Oto jak poprawnie utworzyć instancję obszaru przycięcia:

:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-instantiate-CropRegion.cs
using IronBarCode;

int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;

IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2-x1, height: y2-y1);
Imports IronBarCode

Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522

Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2-x1, height:= y2-y1)
$vbLabelText   $csharpLabel

Ten system współrzędnych płynnie współpracuje z funkcjami korekcji obrazu IronBarcode, umożliwiając stosowanie filtrów tylko w określonych obszarach obrazu.

Jak zastosować CropRegion i odczytać BarCodes?

Po zdefiniowaniu CropRegions, z którego IronBarcode ma odczytywać dane, można zastosować obiekt w BarcodeReaderOptions jako jedną z właściwości, wraz z innymi ustawieniami. Można to następnie wykorzystać jako parametr w metodzie BarcodeReader.Read(). Poniższy fragment kodu ilustruje ten proces:

Jakie parametry akceptuje BarcodeReaderOptions?

Klasa BarcodeReaderOptions zapewnia kompleksową kontrolę nad procesem odczytu BarCode. Oprócz obszarów przycięcia można skonfigurować:

  • Optymalizacja szybkości: Równowaga między dokładnością a wydajnością dzięki ustawieniom szybkości
  • Typy BarCode: Określ dokładne formaty, których chcesz szukać (obsługiwane formaty)
  • Filtry obrazu: stosowanie korekt w przypadku przekrzywionych lub uszkodzonych BARCODE-ów
  • Wielowątkowość: Włącz przetwarzanie równoległe w celu uzyskania lepszej wydajności
  • Obsługa obrotu: Automatyczne wykrywanie obróconych BARCODE-ów

Jak przetworzyć wiele wyników BarCode'ów z wyciętego obszaru?

Podczas skanowania przyciętego obszaru zawierającego wiele kodów kreskowych IronBarcode zwraca zbiór wyników. Każdy wynik zawiera cenne metadane, w tym dokładną lokalizację w obszarze wykadrowania, typ BARCODE oraz zdekodowaną wartość. Oto jak zaimplementować kompleksowe przetwarzanie obszarów przycięcia:

:path=/static-assets/barcode/content-code-examples/how-to/set-crop-region-apply-CropRegion.cs
using IronBarCode;
using System;

int x1 = 62;
int y1 = 29;
int x2 = 345;
int y2 = 522;

IronSoftware.Drawing.Rectangle crop1 = new IronSoftware.Drawing.Rectangle(x: x1, y: y1, width: x2 - x1, height: y2 - y1);

BarcodeReaderOptions options = new BarcodeReaderOptions()
{
    CropArea = crop1
};

var result = BarcodeReader.Read("sample.png", options);
foreach (var item in result)
{
    Console.WriteLine(item.Value);
}
Imports IronBarCode
Imports System

Private x1 As Integer = 62
Private y1 As Integer = 29
Private x2 As Integer = 345
Private y2 As Integer = 522

Private crop1 As New IronSoftware.Drawing.Rectangle(x:= x1, y:= y1, width:= x2 - x1, height:= y2 - y1)

Private options As New BarcodeReaderOptions() With {.CropArea = crop1}

Private result = BarcodeReader.Read("sample.png", options)
For Each item In result
	Console.WriteLine(item.Value)
Next item
$vbLabelText   $csharpLabel

W powyższym fragmencie kodu użyliśmy instancji Rectangle w obiekcie BarcodeReaderOptions jako właściwości CropArea. Następnie używamy tego obiektu BarcodeReaderOptions jako parametru w metodzie BarcodeReader.Read(), aby zastosować CropArea do obrazu i odczytać zawarte w nim BARCODES.

Zaawansowane techniki wycinania obszarów

W przypadku aplikacji produkcyjnych warto rozważyć następujące zaawansowane strategie:

  1. Dynamiczne obszary przycinania: Obliczaj obszary przycinania na podstawie szablonów dokumentów lub wyników OCR
  2. Wiele obszarów: Przetwarzaj kilka obszarów przycięcia w jednym obrazie w przypadku złożonych układów
  3. Optymalizacja wydajności: Połącz obszary przycinania z przetwarzaniem asynchronicznym, aby uzyskać maksymalną przepustowość
  4. Obsługa błędów: Wprowadź strategie awaryjne na wypadek, gdyby BarCodes nie zostały znalezione w oczekiwanych obszarach

Podczas pracy z dokumentami PDF można zastosować obszary przycięcia do określonych stron, co znacznie skraca czas przetwarzania dużych plików. Jest to szczególnie przydatne w przypadku faktur, etykiet wysyłkowych lub formularzy, w których pozycje BarCode są ustandaryzowane.

Najlepsze praktyki dotyczące definiowania obszaru przycięcia

Aby zmaksymalizować skuteczność obszarów przycięcia:

  • Dodaj odstępy: Dodaj 10–20 pikseli wokół przewidywanych lokalizacji BarCode'ów, aby uwzględnić niewielkie różnice
  • Dokładnie przetestuj: Sprawdź, czy obszary przycięcia działają w całym zestawie dokumentów
  • Współrzędne dokumentu: Prowadź arkusz referencyjny zawierający typowe obszary przycinania dla Twojej aplikacji
  • Weź pod uwagę skalowanie: uwzględnij różne rozdzielczości obrazów lub ustawienia DPI
  • Monitorowanie wydajności: śledzenie czasów przetwarzania w celu weryfikacji skuteczności obszaru kadrowania

W przypadku aplikacji wymagających odporności na awarie należy zastosować podejście dwuetapowe: najpierw zeskanować obszar przycięcia, a następnie przejść do skanowania całego obrazu, jeśli w oczekiwanych obszarach nie zostaną znalezione żadne BARCODE-y.

Wnioski

Definiowanie obszarów przycinania to skuteczna technika optymalizacji wydajności odczytu BarCode w aplikacjach .NET. Ograniczając obszar skanowania do określonych regionów, można osiągnąć znaczną poprawę szybkości przy jednoczesnym zmniejszeniu liczby fałszywych alarmów. Niezależnie od tego, czy przetwarzasz pojedyncze obrazy, czy operacje wsadowe, obszary kadrowania zapewniają precyzję i wydajność wymaganą w środowiskach produkcyjnych.

Często Zadawane Pytania

Co to jest obszar przycięcia kodu kreskowego i dlaczego powinienem go używać?

Obszar przycięcia kodu kreskowego to określony obszar w obrębie obrazu, na którym IronBarcode koncentruje swoje wysiłki skanowania. Poprzez zdefiniowanie obszaru przycięcia za pomocą IronSoftware.Drawing.Rectangle, możesz osiągnąć do 5x szybsze prędkości odczytu kodów kreskowych, jednocześnie zmniejszając błędy poprzez ograniczenie skanowania tylko do odpowiednich obszarów Twojego obrazu.

Jak zdefiniować obszar przycięcia dla odczytu kodu kreskowego?

Możesz zdefiniować obszar przycięcia w IronBarcode, tworząc obiekt IronSoftware.Drawing.Rectangle ze specyficznymi współrzędnymi (x, y) i wymiarami (width, height), a następnie przekazując go w właściwości BarcodeReaderOptions.CropArea podczas wywołania metody Read.

Jakich ulepszeń wydajności mogę oczekiwać z użycia obszarów przycięcia?

Funkcja obszaru przycięcia w IronBarcode może poprawić wydajność odczytu kodów kreskowych nawet 5x w porównaniu do skanowania całych obrazów. Jest to szczególnie korzystne podczas pracy z dokumentami wielostronicowymi lub obrazami w wysokiej rozdzielczości, gdzie lokalizacje kodów kreskowych są przewidywalne.

Jak mogę znaleźć poprawne współrzędne dla mojego obszaru przycięcia?

Możesz znaleźć współrzędne obszaru przycięcia, korzystając z oprogramowania do edycji obrazów, jak Microsoft Paint, GIMP lub Photoshop. Po prostu otwórz swój obraz, przesuń kursorem do żądanego lewego górnego rogu obszaru, zanotuj współrzędne x,y, a następnie znajdź współrzędne prawego dolnego rogu w celu określenia szerokości i wysokości dla Twojego Rectangle w IronBarcode.

Kiedy użycie obszarów przycięcia jest szczególnie korzystne?

Obszary przycięcia w IronBarcode są szczególnie cenne przy przetwarzaniu obrazów z wieloma kodami kreskowymi, złożonymi tłami, dokumentami wielostronicowymi, lub obrazami w wysokiej rozdzielczości, gdzie lokalizacje kodów kreskowych są spójne i przewidywalne.

Jakie są korzyści z użycia IronBarcode do operacji na kodach kreskowych?

IronBarcode oferuje korzyści takie jak łatwość integracji, wsparcie dla wielu formatów kodów kreskowych, generowanie obrazów wysokiej jakości oraz solidne możliwości odczytu, co czyni go kompleksowym narzędziem do operacji na kodach kreskowych w C#.

Czy IronBarcode oferuje wsparcie dla dostosowywania wyglądu kodów kreskowych?

Tak, IronBarcode oferuje rozległe opcje dostosowywania wyglądu kodów kreskowych, w tym kolory, rozmiar i adnotacje tekstowe, pozwalając dostosować kody kreskowe do konkretnych wymagań projektowych.

Jak IronBarcode może pomóc w poprawie efektywności procesów biznesowych?

IronBarcode zwiększa efektywność procesów biznesowych, umożliwiając szybkie i dokładne generowanie i odczyt kodów kreskowych, redukując błędy ręcznego wprowadzania danych i poprawiając śledzenie zapasów i aktywów.

Jakie umiejętności programistyczne są potrzebne do zaimplementowania IronBarcode w projekcie?

Podstawowa znajomość programowania w C# jest wystarczająca do zaimplementowania IronBarcode w projekcie, ponieważ oferuje on nieskomplikowane metody i kompleksową dokumentację do prowadzenia deweloperów.

Czy IronBarcode jest odpowiedni zarówno dla małych projektów, jak i dużych aplikacji korporacyjnych?

IronBarcode jest zaprojektowany do bycia skalowalnym i wszechstronnym, dzięki czemu jest odpowiedni zarówno dla małych projektów, jak i dużych aplikacji korporacyjnych, które wymagają solidnych rozwiązań kodów kreskowych.

Hairil Hasyimi Bin Omar
Inżynier oprogramowania
Jak wszyscy wielcy inżynierowie, Hairil jest zapalonym uczniem. Doskonali swoją wiedzę na temat C#, Pythona i Javy, wykorzystując tę wiedzę, aby dodawać wartości członkom zespołu Iron Software. Hairil dołączył do zespołu Iron Software z Universiti Teknologi MARA w Malezji, gdzie uzyskał tytuł licencjata ...
Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 2,240,258 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package BarCode
uruchom przykład zobacz, jak twoje ciągi zamieniają się w kody kreskowe.