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 dialog
  • pattern: Regular expression as string to search in recognized text
  • notFoundMessage: Message to show when pattern is not found
  • successMessage: Message to show when pattern is found
  • width: Dialog width
  • height: Dialog height
  • backgroundColor: Dialog background color
  • primaryColor: Primary color for buttons and interactive elements
  • successColor: Color for success messages
  • errorColor: Color for error messages
  • initialImagePath: 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.