Biblioteka kodów kreskowych

Biblioteka kodów kreskowych lub zestaw SDK kodów kreskowych to biblioteka oprogramowania , której można używać do dodawania funkcji kodów kreskowych do aplikacji komputerowych, internetowych, mobilnych lub wbudowanych. Biblioteka kodów kreskowych zawiera zestawy podprogramów lub obiektów , które pozwalają tworzyć obrazy kodów kreskowych i umieszczać je na powierzchniach lub rozpoznawać zakodowany maszynowo tekst/dane z zeskanowanych lub zarejestrowanych przez kamery obrazów z osadzonymi kodami kreskowymi. Biblioteka może obsługiwać dwa tryby: tryb generowania i rozpoznawania, niektóre biblioteki obsługują odczyt i zapis kodów kreskowych w ten sam sposób, ale niektóre biblioteki obsługują tylko jeden tryb.

W tej chwili technologia kodów kreskowych umożliwia dodawanie znaczników odczytu maszynowego lub dodatkowych danych odczytu maszynowego do dowolnego obiektu świata rzeczywistego za mniej niż jeden cent. i użyj dowolnego urządzenia wyposażonego w kamerę, aby zidentyfikować dodatkowe dane o obiekcie. W ten sposób połączenie technologii kodów kreskowych i biblioteki kodów kreskowych pozwala tanim wdrożeniem dowolnej aplikacji do automatycznego przetwarzania dokumentów , aplikacji OMR , aplikacji do śledzenia przesyłek , a nawet aplikacji rozszerzonej rzeczywistości .

Historia

Pierwsze zestawy SDK kodów kreskowych nie zostały zaimplementowane jako biblioteki oprogramowania, ale jako samodzielne aplikacje dla DOS i Windows oraz jako czcionki kodów kreskowych . W tamtym czasie kody kreskowe były używane głównie w handlu detalicznym i na potrzeby wewnętrznych korporacji, dlatego użytkownicy kodów kreskowych szukali kompleksowych rozwiązań sprzętowych do generowania, drukowania i rozpoznawania kodów kreskowych.

Sytuacja zmieniła się, gdy urządzenia wyposażone w aparaty fotograficzne (takie jak telefony komórkowe ) i skanery dokumentów stały się powszechne w codziennym użytkowaniu. Ponieważ kody kreskowe można było skanować i rozpoznawać na zwykłym zwykłym sprzęcie, a użytkownicy przemysłowi i biurowi nie musieli nabywać drogich, specjalistycznych, jednofunkcyjnych urządzeń do odczytu kodów kreskowych, wzrosło zapotrzebowanie na zestawy SDK i biblioteki do zapisywania i odczytywania kodów kreskowych .

Biblioteki do pisania kodów kreskowych zostały już zaimplementowane jako czcionki kodów kreskowych lub samodzielne aplikacje w projektach takich jak GNU Barcode lub Zint . Wdrożenie biblioteki do zapisu kodów kreskowych nie wymaga twardych informatycznych , ponieważ wystarczy przestrzegać specyfikacji AIM lub ISO . Nie różni się niczym od kodowania danych w specjalnym formacie pliku .

Kodowanie kodów kreskowych 2D jest trudniejsze, ponieważ kody kreskowe 2D zamiast kodów kreskowych 1D mają dodatkowe dane kodowania, takie jak kolumny, wiersze, ECI lub opcje korekty danych . Niektóre kody kreskowe 2D, takie jak MaxiCode lub Pdf 417, mają również specjalne pola kodowania, takie jak adres pocztowy lub metadane, które przekształcają te kody kreskowe w wiele plików graficznych. Tych różnic nie dało się rozwiązać przy użyciu czcionek kodów kreskowych i wymaganego API z przetwarzaniem wielu parametrów.

Biblioteki odczytu kodów kreskowych są bardziej złożone i wymagają technik Computer Vision . Można je jednak uruchamiać na typowych urządzeniach wyposażonych w aparaty fotograficzne lub skanery. Pierwsze biblioteki potrafiły rozpoznawać tylko kody kreskowe 1D poprzez emulację trybu skanerów laserowych . Ten tryb przechwytywał cały obraz, ale potem biblioteka wykonała kilka linii skanowania za pomocą algorytmu Bresenhama i próbowała rozpoznać dane z tych linii, tak jak robiły to sprzętowe skanery laserowe. Jasną reprezentacją tych bibliotek jest wczesny ZXing wspierany przez Google, ZBar lub inne rozwiązania.

Do rozpoznawania kodów kreskowych 2D skanerów laserowych tryb emulacji nie jest odpowiedni. Ponadto ta metoda ma trudności z wykrywaniem obszaru kodu kreskowego, co powoduje problemy z wykrywaniem kodu kreskowego 1D pod kątem. Wdrożono bardziej skomplikowane metody z Computer Vision, aby poprawić jakość rozpoznawania kodów kreskowych 1D i 2D.

Aplikacja

Biblioteki kodów kreskowych zapewniły tanie funkcje automatycznej identyfikacji i przechwytywania danych w różnych dziedzinach usług i przemysłu. Może to być rozrywka, opieka zdrowotna, usługi pocztowe, takie jak przetwarzanie dokumentów lub aplikacje dla handlu detalicznego.

Mogą być używane do:

typy

Biblioteki kodów kreskowych i/lub zestawy SDK kodów kreskowych można podzielić na różne typy w zależności od ich funkcjonalności:

  • Czcionki kodów kreskowych
  • Biblioteka do pisania kodów kreskowych
  • Biblioteka odczytu kodów kreskowych
  • Biblioteka pełnego wsparcia kodów kreskowych

Pierwsze biblioteki kodów kreskowych były w pełni przejrzyste dla użytkownika i używane jako prosty drukowany tekst ze specjalistycznymi czcionkami TrueType . Działa to dobrze w przypadku kodów kreskowych 1D , ponieważ kod kreskowy 1D jest taki sam jak tekst liniowy, czasem z sumą kontrolną. Możliwe jest również użycie czcionek kodów kreskowych z kodami kreskowymi 2D , ale występuje problem z przetwarzaniem metadanych, takich jak ustawianie wierszy i kolumn kodu kreskowego oraz metadanych. Rozwiązuje się to za pomocą predefiniowanych różnych wartości metadanych w zestawie czcionek dla tego samego typu kodu kreskowego.

Biblioteki kodów kreskowych z wywołaniami API mają więcej funkcji dostosowywania w trybach pisania i czytania. Jednak tylko część bibliotek posiada pełną obsługę trybów pisania i czytania. Ponad połowa bibliotek obsługuje tylko jeden tryb.

Lista bibliotek kodów kreskowych

Biblioteki kodów kreskowych mogą obsługiwać różne formaty kodów kreskowych i języki programowania . Ponadto mają różną obsługę funkcji czytania i pisania. Na poniższej liście przedstawiono najpopularniejsze biblioteki kodów kreskowych i zestawy SDK:

Lista bibliotek kodów kreskowych:
Nazwa Firma Licencja Typ Języki Platformy Możliwości biblioteki Obsługiwane typy kodów kreskowych
Aspose.Kod kreskowy Aspose Zastrzeżony , wolny od tantiem Pełny Java , .Net , C++ , PHP , JavaScript , Python Wieloplatformowy (natywny), Java , .Net , Android , iOS przez Xamarin , Web Biblioteka Aspose.Barcode może zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych. Odczytywanie kodów kreskowych z dokumentów MS Word i plików PDF jest również możliwe dzięki komponentom Aspose.Words i Aspose.PDF. ponad 60 typów kodów kreskowych
Pisarz kodów kreskowych w czystym PostScript Terry Burton Consulting Ltd MIT ze wsparciem komercyjnym Pisać Postscriptum Międzyplatformowe Barcode Writer w Pure Postscript może generować wszystkie formaty kodów kreskowych całkowicie w PostScript. ponad 70 typów kodów kreskowych
Kod kreskowy4J ŹródłoForge Apache 2.0 Pisać Jawa Jawa Biblioteka Barcode4J może generować obrazy kodów kreskowych w 5 formatach graficznych . Projekt jest przestarzały. 15 typów kodów kreskowych
Biblioteka kodów kreskowych BarcodeLib.com Zastrzeżony , wolny od tantiem Pełny Java , .Net Java , .Net Biblioteka BarcodeLib może zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych 11 rodzajów kodów kreskowych 1D i 3 rodzaje kodów kreskowych 2D
Zestaw SDK kodów kreskowych ByteScout ByteScout, Inc. Zastrzeżony , wolny od tantiem Pełny .Netto ; JavaScript przez REST API ; COM API : C++ , Java , Delphi , PHP , VBScript .Net , Windows , WWW Biblioteki ByteScout BarCode SDK mogą zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych. ponad 20 rodzajów kodów kreskowych
Zestaw SDK czytnika kodów kreskowych ClearImage Inlite Research, Inc Własność , na komputer Czytać .Netto ; COM API : C++ , Java , Delphi , PHP , VBScript Okna Biblioteka czytnika kodów kreskowych może odczytywać kody kreskowe z 5 formatów graficznych i plików pdf. 19 typów kodów kreskowych
Pakiet SDK skanera kodów kreskowych Cognex Cognex Zastrzeżony , wolny od tantiem Czytać Java , .Net , Objective-C , Swift Androida , iOSa Cognex Barcode Scanner SDK może przechwytywać i rozpoznawać kody kreskowe z mobilnej kamery 17 typów kodów kreskowych
SDK czytnika kodów kreskowych Oprogramowanie DTK Prawnie zastrzeżony Czytać Java , .Net Java , .Net Czytnik kodów kreskowych DTK SDK może odczytywać kody kreskowe z 5 formatów graficznych ponad 30 typów kodów kreskowych
Zestaw SDK czytnika kodów kreskowych Dynamsoft Dynamsoft Własność , na komputer Czytać C++ ; Cel-C ; Native API Wrapper : .Net , PHP , Java ; JavaScript przez WebAssembly Windows , Linux , Android przez Xamarin , iOS przez Xamarin , Browser Dynamsoft Barcode Reader SDK może odczytywać kody kreskowe z ponad 5 formatów obrazów i rozpoznawać kody kreskowe z aparatu ponad 30 rodzajów kodów kreskowych
Pakiet SDK kodów kreskowych GdPicture.NET ORPALIS Zastrzeżony , wolny od tantiem Pełny .Internet .Internet Biblioteka może zapisywać i odczytywać kody kreskowe z prawie 90 formatów obrazów i dokumentów ponad 30 typów kodów kreskowych
Kod kreskowy GNU System operacyjny GNU GPLv3 Pisać Postscriptum Międzyplatformowe Biblioteka kodów kreskowych GNU może generować kody kreskowe bezpośrednio w dokumencie za pomocą języka Postscript 10 typów kodów kreskowych
IBscanner dla .NET Inobix Zastrzeżony , wolny od tantiem Czytać .Internet .Internet Biblioteka IBscanner for .NET może odczytywać kody kreskowe z 5 formatów graficznych 12 rodzajów kodów kreskowych 1D
Generator kodów kreskowych IDAutomation IDAutomation.com, Inc. Zastrzeżony , wolny od tantiem Pisać Java , .Net , C++ , PHP , JavaScript , VBA , czcionki TrueType Java , .Net , Windows , WWW Biblioteka generatora kodów kreskowych IDAutomation i czcionki TrueType mogą generować kody kreskowe w różnych językach programowania i aplikacjach obsługujących czcionki TrueType 24 rodzaje kodów kreskowych
KeepDynamic zestaw SDK kodów kreskowych KeepDynamic.com Zastrzeżony , wolny od tantiem Pełny Java , .Net , VBA Java , .Net , MS Office KeepDynamic Barcode SDK może zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych. 9 rodzajów kodów kreskowych 1D i 3 rodzaje kodów kreskowych 2D
LEADTOOLS Zestaw SDK kodów kreskowych LEAD Technologies, Inc Własność , na aplikację Pełny Java , .Net , C++ , Objective-C , Swift , JavaScript przez REST API Wieloplatformowy (natywny), Java , .Net , Android , iOS , Web LEADTOOLS Barcode SDK może zapisywać kody kreskowe w różnych formatach graficznych i odczytywać kody kreskowe z różnych formatów graficznych (w zależności od platformy) ponad 50 rodzajów kodów kreskowych
Interfejs API skanowania kodów kreskowych zestawu ML Google API Google Czytać Java , Objective-C , Swift Androida , iOSa Interfejs API skanowania kodów kreskowych zestawu ML może rozpoznawać kody kreskowe z aparatu mobilnego 13 typów kodów kreskowych
Profesjonalny neodynamiczny kod kreskowy Neodynamic SRL Zastrzeżony , wolny od tantiem Pełny .Netto ; JavaScript , PHP przez REST API .Net , Sieć Neodynamic Barcode Professional może zapisać ponad 70 typów kodów kreskowych w 7 formatach graficznych i odczytać 12 typów kodów kreskowych z 5 formatów graficznych. zapis : ponad 70 rodzajów kodów kreskowych / odczyt : 12 rodzajów kodów kreskowych 1D
Pakiet SDK kodów kreskowych OnBarcode Nakod kreskowy Zastrzeżony , wolny od tantiem Pełny Java , .Net , Objective-C Java , .Net , Android , iOS OnBarcode Barcode SDK może zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych (w zależności od platformy) ponad 20 rodzajów kodów kreskowych
Otwórz kody kreskowe ŹródłoForge GPLv2 Pisać Czcionka TrueType Międzyplatformowe Czcionki OpenBarcodes TrueType mogą kodować tekst do kodu kreskowego w dowolnej aplikacji do obsługi tekstu sformatowanego 4 rodzaje kodów kreskowych 1D i 3 rodzaje kodów kreskowych 2D
Pakiet SDK kodów kreskowych pqScan pqScan Zastrzeżony , wolny od tantiem Pełny Java , .Net Java , .Net pqScan Barcode SDK może zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych 13 typów kodów kreskowych
Biblioteka kodów kreskowych Pythona Kreator gier 2k BSD Pisać Pyton Międzyplatformowe Biblioteka kodów kreskowych Pythona może generować obrazy kodów kreskowych w języku Python 12 typów kodów kreskowych
Zestaw SDK skanera kodów kreskowych Scanbot Pakiet SDK Scanbota Prawnie zastrzeżony Czytać Java , Objective-C , Swift , Kotlin , Dart , JavaScript , C# , .Net Android , iOS , Przeglądarka , Xamarin , Cordova , Ionic , Flutter , React Native Scanbot Barcode Scanner SDK może odczytywać 9 typów kodów kreskowych 1D i 9 różnych formatów 2D za pośrednictwem aplikacji i stron internetowych. 18 rodzajów kodów kreskowych
SD-TOOLKIT Zestaw SDK kodów kreskowych ZESTAW NARZĘDZI SD Zastrzeżony , wolny od tantiem Czytać Jawa ; .Netto ; C++ (natywny); COM API : C++ , Java , Delphi , VBScript ; Cel C Jawa ; .Net , Android , iOS , Windows SD-TOOLKIT Barcode SDK może odczytywać kody kreskowe z 5 formatów graficznych 15 rodzajów kodów kreskowych 1D i 4 rodzaje kodów kreskowych 2D
SDK SmartCodeDeveloper TechnoRzeka Zastrzeżony , wolny od tantiem Pisać .Internet .Internet SmartCodeDeveloper SDK może zapisywać kody kreskowe w 7 formatach graficznych ponad 30 typów kodów kreskowych
Iglica.Kod kreskowy E-iceblue Co.Ltd. Zastrzeżony , wolny od tantiem Pełny Java , .Net Java , .Net , Android przez Xamarin , iOS przez Xamarin Biblioteka Spire.Barcode może zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych 39 rodzajów kodów kreskowych
TBarCode SDK TEC-IT Datenverarbeitung GmbH Zastrzeżony , wolny od tantiem Pisać .Netto ; C++ ; Delfy ; PowerBuilder ; COM API : C++ , Delphi , VBScript ; ABAP Wieloplatformowy (natywny), .Net , SAP TBarCode SDK może zapisywać kody kreskowe w 7 formatach graficznych (w zależności od platformy) ponad 70 typów kodów kreskowych
Zestaw SDK kodów kreskowych VintaSoft .NET VintaSoft Zastrzeżony , wolny od tantiem Pełny .Internet .Net , Android przez Xamarin VintaSoft Barcode .NET SDK może zapisywać kody kreskowe w 7 formatach graficznych i odczytywać kody kreskowe z 5 formatów graficznych. Biblioteka może również odczytywać obrazy z osadzonych dokumentów pdf. ponad 60 typów kodów kreskowych
VSBarcodeReader Vision Smarts SPRL Zastrzeżony , wolny od tantiem Czytać Objective-C , Swift , Java , Kotlin iOS , Android , Xamarin , Cordova , Ionic Vision Smarts Barcode Scanner SDK odczytuje kody kreskowe za pomocą aparatu urządzenia mobilnego. Działa w 100% offline. 18 rodzajów kodów kreskowych 1D i 2D
ZBar ŹródłoForge GNU LGPL 2.1 Czytać Pythona , Perla , C++ , C Linux / Unix , Windows , iOS Biblioteka ZBar może przechwytywać obraz ze strumienia wideo i rozpoznawać kody kreskowe. Biblioteka działa jako skanera liniowego . 7 rodzajów kodów kreskowych 1D i kod QR
Ramy renderowania kodów kreskowych Zen Nic Domena publiczna Pisać .Internet .Internet Zen Barcode Rendering Framework może zapisywać kody kreskowe w 7 formatach graficznych 9 rodzajów kodów kreskowych
Cynk ŹródłoForge Apache 2.0 , BSD , GNU GPLv3 Pisać C , .Net przez port ZintNET, Java przez port Okapi Barcode Linux / Unix , Windows , Java , .Net Może generować kody kreskowe w 6 formatach obrazu (w zależności od portu) ponad 50 rodzajów kodów kreskowych
ZXing Projekt ZXing Apache 2.0 Pełny Java , .Net , C++ , Objective-C , JavaScript , PHP , Ruby , Python , TypeScript Wieloplatformowy (natywny), Java , .Net , Android , iOS , Web Biblioteka ZXing wraz z portami może generować kody kreskowe w różnych formatach graficznych (zależy to od portu źródłowego) oraz odczytywać kody kreskowe z obrazu lub z aparatu. ponad 20 rodzajów kodów kreskowych
Syncfusion.Kod kreskowy Synchronizacja Prawnie zastrzeżony Pisać .Internet .Internet Biblioteka Syncfusion.Barcode generuje kody kreskowe jako obrazy lub dokumenty PDF. Zapewnij również kontrolki interfejsu użytkownika, aby wyświetlać kody kreskowe w interfejsie użytkownika. 10 rodzajów kodów kreskowych 1D i 2 rodzaje kodów kreskowych 2D

Zalecenia i najlepsze praktyki

Kody kreskowe to sposób na dodawanie tagów odczytu maszynowego do dowolnego obiektu świata rzeczywistego przy niskich kosztach. Wszystkie inne sposoby, takie jak chipy RFID lub wykrywanie obiektów za pomocą rozpoznawania obrazu, są droższe i trudniejsze do wdrożenia. Istnieje ponad 200 rodzajów kodów kreskowych, co sprawia, że ​​wybór rodzaju kodu kreskowego jest niejednoznaczny. Pierwszy kod kreskowy został znormalizowany w latach 60. i nastąpiły dwie fale rozwoju funkcji kodu kreskowego

Pierwsza fala tworzenia standardów kodów kreskowych rozpoczęła się w latach 60. i były to kody kreskowe 1D . Głównymi zaletami tych kodów kreskowych było proste kodowanie i rozpoznawanie za pomocą skanerów laserowych liniowych kodów kreskowych. Wszystkie te ograniczenia były związane z wolnymi procesorami 8-bitowymi , które były wówczas używane. To sprawia, że ​​kody kreskowe 1D mają ograniczone kodowanie symboli, jak Code 11 lub mają ograniczoną długość kodu kreskowego, jak EAN 13 , UPCA , EAN 8 , lub mogą być używane nawet bez sumy kontrolnej, jak kody kreskowe Code 39 . Ponadto gęstość informacyjna kodowania tych typów kodów kreskowych jest zbyt niska.

Co więcej, wszystkie te kody kreskowe 1D mają sumę kontrolną niskiej jakości lub w ogóle nie mają sumy kontrolnej, co powoduje, że proces rozpoznawania jest nieprzewidywalny na obrazach o zbyt niskiej jakości. Silniki open source nie rozpoznają kodów kreskowych 1D na obrazach o niskiej jakości, ale silniki kodów kreskowych z zaawansowanymi algorytmami rozpoznawania mogą rozpoznawać te kody kreskowe. Niestety rozpoznanie obrazów o niskiej jakości może spowodować powstanie nieprawidłowych symboli w rozpoznanym tekście. Niska gęstość kodowania, ograniczenia kodowania i słaba suma kontrolna sprawiają, że kod kreskowy 1D nie nadaje się do obecnych wymagań systemów informatycznych i przetwarzania danych. Wykorzystanie kodów kreskowych 1D w nowych aplikacjach jest uzasadnione, jeśli wymagają tego normy przemysłowe

Drugi sposób wdrażania standardów kodów kreskowych został zapoczątkowany w latach 90-tych i był to rozwój kodów kreskowych 2D. Główne zalety kodów kreskowych 2D to wysoka gęstość kodowania, która jest 10 razy większa, brak ograniczeń w kodowaniu tekstu i samosprawdzające się kody, takie jak kody Reeda Solomona , które nie tylko zwiększają pewność prawidłowego rozpoznawania, ale także mogą przywrócić niektóre wyczyszczone lub uszkodzone dane kodów kreskowych. Główną wadą kodów kreskowych 2D jest to, że nie są one rozpoznawane przez skanery laserowe, z wyjątkiem PDF 417 , do rozpoznania wymagają skanerów fotograficznych . Większość kodów kreskowych 2D może kodować informacje w bajtowym , co pozwala na kodowanie zarówno tekstu w 256-bitowym krajowym zestawie znaków kodowania , jak i tekstu w popularnych zestawach znaków Unicode, takich jak UTF16 lub UTF8 .

Nowe projekty powinny wykorzystywać kody kreskowe 2D, jeśli pozwalają na to standardy branżowe. Nie mają żadnych ograniczeń w kodowaniu tekstu, można je poprawnie odtworzyć na uszkodzonych lub niskiej jakości obrazach, a wynik ich rozpoznawania jest w pełni poufny. Gęstość informacyjna pozwala na umieszczanie ich na tym samym obszarze lub nawet mniejszym niż kody kreskowe 1D. Głównym pytaniem może być tutaj wymóg dotyczący oznaczonego obszaru. Najpopularniejszy kod QR może być tylko w rozmiarze kwadratowym, ten sam Aztec lub Datamatrix w niektórych rozmiarach. Jeśli ktoś ma długi prostokątny obszar o małej wysokości, może użyć Datamatrix o prostokątnych rozmiarach, patrz DMRE lub PDF417, które mogą mieć różnicę szerokości do wysokości ponad 64 razy.

Zobacz też

Linki zewnętrzne