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 wejsciowy ciag znakow, zazwyczaj ciag Base64, jest przeksztalcany w byte[] przy uzyciu Convert.FromBase64String oraz dodatkowej logiki dzielenia za pomoca 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.
Nastepnie te bajty sa ladowane do MemoryStream. Dziala to jako tymczasowy uchwyt, pozwalajacy utworzyc obiekt Image bezposrednio ze strumienia przy uzyciu Image.FromStream. Gdy obraz zostanie zaladowany, jest przekazywany do BarcodeReader.Read do skanowania.
Na koniec, wynik odczytu jest zwracany wraz ze znacznikiem czasu. Tablica results, ktora zawiera liste BarcodeResults, jest uzyskiwana w celu zwrocenia wartosci pierwszego kodu kreskowego za posrednictwem wlasnosci Value.

