Text Recognition Camera v0.0.6
A Flutter widget for capturing images and recognizing text using Google ML Kit, with support for pattern searching using regular expressions.
Features
- 📸 Image capture from camera or gallery
- 🔍 Text recognition using Google ML Kit
- 🎯 Pattern search using regular expressions
- 🎨 Fully customizable interface
- 🌓 Dark mode support
- 📱 Responsive and adaptable design
- 📄 Initial image support
- 💾 Returns recognized text and image path
Installation
dependencies:
text_recognition_camera: ^0.0.6
Usage
final result = await showDialog<RecognitionResult>(
context: context,
builder: (context) => const TextRecognitionCamera(
title: "Scan text",
pattern: r'(\d+)', // Pattern to find numbers
notFoundMessage: "No number found",
successMessage: "Number found:",
width: 450,
height: 700,
backgroundColor: Color(0xFFFAFAFA),
primaryColor: Color(0xFF1976D2),
successColor: Color(0xFF388E3C),
errorColor: Color(0xFFD32F2F),
// Theme support parameters
textColor: Colors.black87,
secondaryTextColor: Colors.black54,
buttonBackgroundColor: Colors.grey[100],
buttonForegroundColor: Colors.grey[800],
containerBackgroundColor: Colors.grey[100],
),
);
if (result != null) {
print('Recognized text: ${result.text}');
print('Image path: ${result.imagePath}');
}
Parameters
title: Title that appears at the top of the dialogpattern: Regular expression as string to search in recognized textnotFoundMessage: Message to show when pattern is not foundsuccessMessage: Message to show when pattern is foundwidth: Dialog widthheight: Dialog heightbackgroundColor: Dialog background colorprimaryColor: Primary color for buttons and interactive elementssuccessColor: Color for success messageserrorColor: Color for error messagesinitialImagePath: Path to an initial image to process (optional)imageQuality: Compression quality from 0 to 100 (optional, default 85)maxWidth: Maximum width for the captured image (optional)maxHeight: Maximum height for the captured image (optional)preferredCameraDevice: Preferred camera to use (optional, default back camera)compressionEnabled: Enable/disable image compression (optional, default true)textColor: Main text color (optional, uses theme if not specified)secondaryTextColor: Secondary text and icons color (optional, uses theme if not specified)buttonBackgroundColor: Background color for buttons (optional, uses theme if not specified)buttonForegroundColor: Text color for buttons (optional, uses theme if not specified)containerBackgroundColor: Background color for containers (optional, uses theme if not specified)loadingColor: Color for the loading indicator (optional)errorBackgroundColor: Background color for error messages (optional)
Example
The package includes a complete example that shows how to implement a 12-digit serial number scanner. To run the example:
cd example
flutter run
License
This project is under the MIT license - see the LICENSE file for details.
Text Recognition Camera v0.0.6
Un widget de Flutter para capturar imágenes y reconocer texto utilizando Google ML Kit, con soporte para búsqueda de patrones mediante expresiones regulares.
Características
- 📸 Captura de imágenes desde cámara o galería.
- 🔍 Reconocimiento de texto usando Google ML Kit.
- 🎯 Búsqueda de patrones usando expresiones regulares.
- 🎨 Interfaz totalmente personalizable.
- 🌓 Soporte para modo oscuro.
- 📱 Diseño responsivo y adaptable.
- 📄 Soporte para imagen inicial.
- 💾 Devolución del texto reconocido y ruta de la imagen.
Instalación
dependencies:
text_recognition_camera: ^0.0.6
Uso
final result = await showDialog<RecognitionResult>(
context: context,
builder: (context) => const TextRecognitionCamera(
title: "Escanear texto",
pattern: r'(\d+)', // Patrón para encontrar números
notFoundMessage: "No se encontró ningún número",
successMessage: "Número encontrado:",
width: 450,
height: 700,
backgroundColor: Color(0xFFFAFAFA),
primaryColor: Color(0xFF1976D2),
successColor: Color(0xFF388E3C),
errorColor: Color(0xFFD32F2F),
// Parámetros de soporte para temas
textColor: Colors.black87,
secondaryTextColor: Colors.black54,
buttonBackgroundColor: Colors.grey[100],
buttonForegroundColor: Colors.grey[800],
containerBackgroundColor: Colors.grey[100],
),
);
if (result != null) {
print('Texto reconocido: ${result.text}');
print('Ruta de la imagen: ${result.imagePath}');
}
Parámetros
title: Título que aparece en la parte superior del diálogo.pattern: Expresión regular como cadena para buscar en el texto reconocido.notFoundMessage: Mensaje para mostrar cuando no se encuentra el patrón.successMessage: Mensaje para mostrar cuando se encuentra el patrón.width: Ancho del diálogo.height: Altura del diálogo.backgroundColor: Color de fondo del diálogo.primaryColor: Color primario para botones y elementos interactivos.successColor: Color para mensajes de éxito.errorColor: Color para mensajes de error.initialImagePath: Ruta a una imagen inicial para procesar (opcional).imageQuality: Calidad de compresión de 0 a 100 (opcional, predeterminado 85).maxWidth: Ancho máximo para la imagen capturada (opcional).maxHeight: Altura máxima para la imagen capturada (opcional).preferredCameraDevice: Cámara preferida para usar (opcional, cámara trasera predeterminada).compressionEnabled: Activar/desactivar la compresión de imagen (opcional, predeterminado true).textColor: Color del texto principal (opcional, usa el tema si no se especifica).secondaryTextColor: Color de texto secundario e iconos (opcional, usa el tema si no se especifica).buttonBackgroundColor: Color de fondo para botones (opcional, usa el tema si no se especifica).buttonForegroundColor: Color de texto para botones (opcional, usa el tema si no se especifica).containerBackgroundColor: Color de fondo para contenedores (opcional, usa el tema si no se especifica).loadingColor: Color para el indicador de carga (opcional).errorBackgroundColor: Color de fondo para mensajes de error (opcional).
Ejemplo
El paquete incluye un ejemplo completo que muestra cómo implementar un escáner de números de serie de 12 dígitos. Para ejecutar el ejemplo:
cd example
flutter run
Licencia
Este proyecto está bajo la licencia MIT - ver el archivo LICENSE para más detalles.