A Blazor component for scanning barcodes from camera streams using zxing-js interop.
BlazorBarcodeScanner is a Blazor component library that enables barcode scanning from camera streams in web applications. It uses zxing-js via JavaScript interop to decode various barcode formats in real-time, providing a seamless way to add barcode reading functionality to Blazor projects.
Blazor developers building applications that require barcode scanning, such as inventory management, point-of-sale systems, or document processing tools.
It offers a native Blazor component with extensive customization, event-driven callbacks, and image capture features, eliminating the need for external scanning services or complex JavaScript integration.
Barcode Scanner component for Blazor using zxing-js Interop
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
It's a native Blazor component that integrates directly into .razor files, providing a familiar C# API without needing external services, as shown in the usage examples with EventCallback bindings.
Offers multiple events like OnBarcodeReceived, OnErrorReceived, and OnDecodingChanged, allowing developers to handle scan results, errors, and state changes flexibly, as detailed in the callback sections.
Allows adjustment of StreamWidth and StreamHeight parameters to balance detection accuracy and performance, with warnings in the README about trade-offs like CPU usage and battery life.
Supports capturing still images as base64 encoded JPEGs from the video stream, useful for documentation or further processing, though it requires polyfills for full browser support.
Features like torch toggle and image capture are experimental, with limited support in browsers like Firefox, requiring additional polyfills as mentioned in the README.
High stream resolutions can impair performance, causing dropped frame rates and increased CPU usage, which the README explicitly warns about for user experience.
Relies on zxing-js and JavaScript interop, making it unusable in environments where JavaScript is disabled or restricted, and adding setup complexity with script tags.