flutter_native_ocr 0.0.1
flutter_native_ocr: ^0.0.1 copied to clipboard
A Flutter plugin for native iOS OCR (Optical Character Recognition) using Apple's Vision framework.
flutter_native_ocr #
A Flutter plugin that provides native iOS OCR (Optical Character Recognition) capabilities using Apple's Vision framework.
Features #
- Native iOS OCR using Apple's Vision framework
- High accuracy text recognition
- Support for multiple languages
- Simple and easy-to-use API
- iOS only (utilizes platform-specific Vision framework)
Requirements #
- iOS 13.0 or later
- Xcode 11 or later
- Flutter 3.3.0 or later
Installation #
Add this to your package's pubspec.yaml
file:
dependencies:
flutter_native_ocr: ^0.0.1
Then run:
flutter pub get
Future Plans #
This package currently supports iOS only. Android support using Google ML Kit is planned for future releases.
Usage #
Basic Usage #
import 'package:flutter_native_ocr/flutter_native_ocr.dart';
// Create an instance
final flutterNativeOcr = FlutterNativeOcr();
// Recognize text from an image file
String imagePath = '/path/to/your/image.jpg';
try {
String recognizedText = await flutterNativeOcr.recognizeText(imagePath);
print('Recognized text: $recognizedText');
} catch (e) {
print('Error: $e');
}
Complete Example #
import 'package:flutter/material.dart';
import 'package:flutter_native_ocr/flutter_native_ocr.dart';
import 'package:image_picker/image_picker.dart';
import 'dart:io';
class OCRPage extends StatefulWidget {
@override
_OCRPageState createState() => _OCRPageState();
}
class _OCRPageState extends State<OCRPage> {
final _flutterNativeOcr = FlutterNativeOcr();
final ImagePicker _picker = ImagePicker();
String _recognizedText = '';
File? _imageFile;
Future<void> _pickAndRecognize() async {
final XFile? image = await _picker.pickImage(source: ImageSource.gallery);
if (image != null) {
setState(() {
_imageFile = File(image.path);
});
try {
final text = await _flutterNativeOcr.recognizeText(image.path);
setState(() {
_recognizedText = text.isEmpty ? 'No text found' : text;
});
} catch (e) {
setState(() {
_recognizedText = 'Error: $e';
});
}
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('OCR Example')),
body: Column(
children: [
ElevatedButton(
onPressed: _pickAndRecognize,
child: Text('Pick Image & Recognize Text'),
),
if (_imageFile != null) Image.file(_imageFile!),
if (_recognizedText.isNotEmpty)
Padding(
padding: EdgeInsets.all(16),
child: Text(_recognizedText),
),
],
),
);
}
}
API Reference #
Methods #
recognizeText(String imagePath)
Recognizes text from an image file.
Parameters:
imagePath
(String): The absolute path to the image file
Returns:
Future<String>
: The recognized text as a string. Returns empty string if no text is found.
Throws:
UnsupportedError
: If called on non-iOS platformsPlatformException
: If there's an error during text recognition
Supported Image Formats #
The plugin supports all image formats supported by UIImage, including:
- JPEG
- PNG
- HEIF/HEIC
- TIFF
- BMP
- GIF
Platform Support #
This plugin is iOS only and utilizes Apple's Vision framework for text recognition. It will throw an UnsupportedError
if used on other platforms.
Privacy #
This plugin processes images locally on the device using Apple's Vision framework. No data is sent to external servers.
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
License #
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog #
See CHANGELOG.md for a list of changes.os
A new Flutter plugin project.
Getting Started #
This project is a starting point for a Flutter plug-in package, a specialized package that includes platform-specific implementation code for Android and/or iOS.
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.