Skaner kodów kreskowych w sieci
Skany kodów kreskowych ze źródeł internetowych często wymagają obsługi danych obrazów jako ciągów tekstowych zamiast plików fizycznych. Główną zaletą tego podejścia jest to, że pozwala ono Twojej aplikacji przetwarzać obrazy bezpośrednio z przesyłek użytkownika lub strumieni z kamer internetowych bez ich wcześniejszego zapisywania na dysku.
W tym przykładzie kodu zademonstrujemy główny fragment kodu, który pokazuje, jak przekonwertować ciąg Base64 z powrotem na obraz i zeskanować go w poszukiwaniu danych za pomocą IronBarcode, gdy jest zintegrowany z platformą internetową, taką jak Blazor.
5-stopniowy przewodnik po konfiguracji sieciowego skanera kodów kreskowych IronBarcode
byte[] imagebyteData = Convert.FromBase64String((splitObject.Length > 1) ? splitObject[1] : splitObject[0]);using (var ms = new MemoryStream(imagebyteData))Image barcodeImage = Image.FromStream(ms);var results = BarcodeReader.Read(barcodeImage);return $"{DateTime.Now}: Barcode is ({results[0].Value})";
Wyjaśnienie kodu
Najpierw ciąg wejściowy, zazwyczaj ciąg Base64, jest konwertowany na byte[] przy użyciu Convert.FromBase64String oraz dodatkowej logiki dzielenia przy użyciu MemoryStream. Dodatkowo wykonywane jest sprawdzenie, czy ciąg trzeba podzielić. Obsługuje to przypadki, gdy dane wejściowe mogą zawierać nagłówki, takie jak URI danych, zapewniając przetwarzanie tylko rzeczywistych danych obrazu.
Następnie bajty te są ładowane do MemoryStream. Działa to jako tymczasowy element przechowujący, umożliwiający utworzenie obiektu Image bezpośrednio ze strumienia przy użyciu Image.FromStream. Po załadowaniu obrazu jest on przekazywany do BarcodeReader.Read w celu skanowania.
Na koniec zwracany jest wynik odczytu wraz z sygnaturą czasową. Uzyskuje się dostęp do tablicy results, która zawiera listę BarcodeResults, aby zwrócić wartość pierwszego BARCODE za pośrednictwem właściwości Value.

