Flutter MRZ Scanner Enhanced
A community-maintained fork of the original flutter_mrz_scanner
package with significant improvements to MRZ scanning reliability and camera UX.
✨ Key Enhancements
- Improved text recognition accuracy through advanced image preprocessing
- Optimized camera overlay UI for better user experience
- Enhanced image processing pipelines
- Modernized dependencies and null-safety support
- Improved error handling and validation
- Better platform compatibility
🚧 Active Development
As I'm actively using this in production, expect regular updates including:
Performance Improvements 🚀
- Flutter Isolate Integration: Offload heavy image processing and OCR tasks to background isolates for smoother UI performance.
- Real-Time MRZ Detection: Implement live feedback for MRZ detection with visual indicators and dynamic UI updates.
Feature Enhancements ✨
- Machine Learning Model Optimizations: Improve OCR accuracy with updated ML models and preprocessing pipelines.
- Customizable UI Components: Allow developers to fully customize the camera overlay, scanning UI, and feedback animations.
Stability & Maintenance 🔧
- Improved Error Handling: Better error reporting and recovery mechanisms for edge cases.
- Cross-Platform Compatibility: Ensure consistent behavior across iOS, Android, and web platforms.
- Community-Driven Features: Prioritize features and fixes based on community feedback.
🙏 Acknowledgments
This package builds upon the work of:
- @olexale (Oleksandr Leushchenko) - Original creator
- @makhosi6 (Makhosandile) - Early contributor
- @eusopht2021 - Community contributor
Contributions welcome! Please report issues and feature requests on GitHub.
Supported formats:
- TD1
- TD2
- TD3
- MRV-A
- MRV-B
Usage
Import the package
Add to pubspec.yaml
dependencies:
flutter_mrz_scanner: <latest_version_here>
For iOS
Set iOS deployment target to 12.
The plugin uses the device camera, so do not forget to provide the NSCameraUsageDescription
. You may specify it in Info.plist
like that:
<key>NSCameraUsageDescription</key>
<string>SCANNING MRZ REQUIRE CAMERA PERMISSIONS</string>
For Android
Add
<uses-permission android:name="android.permission.CAMERA" />
to AndroidManifest.xml
Use the widget
Use MRZScanner
widget:
MRZScanner(
withOverlay: true, // Mandatory for proper document cropping
onControllerCreated: (controller) =>
onControllerCreated(controller),
)
Refer to example
project for the complete app sample.
Acknowledgements
- Anna Domashych for helping with mrz_parser implementation in Dart
- Anton Derevyanko for hours of Android-related discussions
- Mattijah for beautiful QKMRZScanner library
License
flutter_mrz_scanner_enhanced
is released under a MIT License. See LICENSE
for details.