{"id":32295618,"url":"https://github.com/shrawank039/flutter_native_ocr","last_synced_at":"2025-10-23T03:59:47.652Z","repository":{"id":297937078,"uuid":"998034896","full_name":"shrawank039/flutter_native_ocr","owner":"shrawank039","description":"A Flutter plugin for native OCR (Optical Character Recognition) using Apple's Vision framework on iOS and Google ML Kit on Android. High accuracy text recognition with on-device processing.","archived":false,"fork":false,"pushed_at":"2025-06-10T22:39:46.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-23T03:59:47.317Z","etag":null,"topics":["flutter-plugin","image-processing","ml-kit","text-extraction","text-recognition","vision"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/flutter_native_ocr","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shrawank039.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-07T18:17:59.000Z","updated_at":"2025-08-18T10:55:13.000Z","dependencies_parsed_at":"2025-06-08T13:27:18.828Z","dependency_job_id":"ed3a955a-6897-4026-abed-2df22e43f950","html_url":"https://github.com/shrawank039/flutter_native_ocr","commit_stats":null,"previous_names":["shrawank039/flutter_native_ocr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shrawank039/flutter_native_ocr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shrawank039%2Fflutter_native_ocr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shrawank039%2Fflutter_native_ocr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shrawank039%2Fflutter_native_ocr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shrawank039%2Fflutter_native_ocr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shrawank039","download_url":"https://codeload.github.com/shrawank039/flutter_native_ocr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shrawank039%2Fflutter_native_ocr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280557083,"owners_count":26350569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-23T02:00:06.710Z","response_time":142,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter-plugin","image-processing","ml-kit","text-extraction","text-recognition","vision"],"created_at":"2025-10-23T03:59:46.753Z","updated_at":"2025-10-23T03:59:47.647Z","avatar_url":"https://github.com/shrawank039.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flutter_native_ocr\n\nA Flutter plugin that provides native OCR (Optical Character Recognition) capabilities using platform-specific frameworks.\n\n## Features\n\n- **iOS**: Native OCR using Apple's Vision framework\n- **Android**: Native OCR using Google ML Kit Text Recognition v2 (v16.0.1)\n- High accuracy text recognition on both platforms\n- Support for multiple languages\n- On-device processing (no internet required)\n- Simple and easy-to-use API\n\n## Requirements\n\n### iOS\n- iOS 13.0 or later\n- Xcode 11 or later\n\n### Android\n- Android API level 21 (Android 5.0) or later\n- Google Play Services (for ML Kit)\n- Android SDK 35 or higher (for compilation)\n- Java 11 or higher\n\n### Flutter\n- Flutter 3.3.0 or later\n\n## Installation\n\nAdd this to your package's `pubspec.yaml` file:\n\n```yaml\ndependencies:\n  flutter_native_ocr: ^0.1.0\n```\n\nThen run:\n\n```bash\nflutter pub get\n```\n\n## Android Configuration\n\nIf you encounter build issues, ensure your Android project is configured with the following minimum requirements:\n\n### In your `android/app/build.gradle`:\n\n```gradle\nandroid {\n    compileSdk = 35  // Use 35 or higher\n    \n    compileOptions {\n        sourceCompatibility = JavaVersion.VERSION_11  // Use Java 11\n        targetCompatibility = JavaVersion.VERSION_11\n    }\n    \n    kotlinOptions {\n        jvmTarget = JavaVersion.VERSION_11\n    }\n    \n    defaultConfig {\n        minSdk = 21      // Minimum supported\n        targetSdk = 35   // Should match compileSdk\n    }\n}\n```\n\n### Common Issues:\n- **SDK Version Warning**: If you see warnings about plugin compatibility, use `compileSdk = 35`\n- **Java Version**: ML Kit requires Java 11 or higher\n- **NDK Version**: Use the latest NDK version for best compatibility\n\n## Future Plans\n\nThis package supports both iOS and Android platforms. Future enhancements may include:\n- Advanced OCR options (language hints, confidence scores)\n- Support for more specialized text recognition models\n\n## Usage\n\n### Basic Usage\n\n```dart\nimport 'package:flutter_native_ocr/flutter_native_ocr.dart';\n\n// Create an instance\nfinal flutterNativeOcr = FlutterNativeOcr();\n\n// Recognize text from an image file\nString imagePath = '/path/to/your/image.jpg';\ntry {\n  String recognizedText = await flutterNativeOcr.recognizeText(imagePath);\n  print('Recognized text: $recognizedText');\n} catch (e) {\n  print('Error: $e');\n}\n```\n\n### Complete Example\n\n```dart\nimport 'package:flutter/material.dart';\nimport 'package:flutter_native_ocr/flutter_native_ocr.dart';\nimport 'package:image_picker/image_picker.dart';\nimport 'dart:io';\n\nclass OCRPage extends StatefulWidget {\n  @override\n  _OCRPageState createState() =\u003e _OCRPageState();\n}\n\nclass _OCRPageState extends State\u003cOCRPage\u003e {\n  final _flutterNativeOcr = FlutterNativeOcr();\n  final ImagePicker _picker = ImagePicker();\n  String _recognizedText = '';\n  File? _imageFile;\n\n  Future\u003cvoid\u003e _pickAndRecognize() async {\n    final XFile? image = await _picker.pickImage(source: ImageSource.gallery);\n    \n    if (image != null) {\n      setState(() {\n        _imageFile = File(image.path);\n      });\n\n      try {\n        final text = await _flutterNativeOcr.recognizeText(image.path);\n        setState(() {\n          _recognizedText = text.isEmpty ? 'No text found' : text;\n        });\n      } catch (e) {\n        setState(() {\n          _recognizedText = 'Error: $e';\n        });\n      }\n    }\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(title: Text('OCR Example')),\n      body: Column(\n        children: [\n          ElevatedButton(\n            onPressed: _pickAndRecognize,\n            child: Text('Pick Image \u0026 Recognize Text'),\n          ),\n          if (_imageFile != null) Image.file(_imageFile!),\n          if (_recognizedText.isNotEmpty)\n            Padding(\n              padding: EdgeInsets.all(16),\n              child: Text(_recognizedText),\n            ),\n        ],\n      ),\n    );\n  }\n}\n```\n\n## API Reference\n\n### Methods\n\n#### `recognizeText(String imagePath)`\n\nRecognizes text from an image file.\n\n**Parameters:**\n- `imagePath` (String): The absolute path to the image file\n\n**Returns:**\n- `Future\u003cString\u003e`: The recognized text as a string. Returns empty string if no text is found.\n\n**Throws:**\n- `UnsupportedError`: If called on unsupported platforms (only iOS and Android are supported)\n- `PlatformException`: If there's an error during text recognition\n\n## Supported Image Formats\n\n### iOS\nThe plugin supports all image formats supported by UIImage, including:\n- JPEG\n- PNG\n- HEIF/HEIC\n- TIFF\n- BMP\n- GIF\n\n### Android\nThe plugin supports all image formats supported by ML Kit, including:\n- JPEG\n- PNG\n- BMP\n- GIF\n- WebP\n\n## Platform Support\n\nThis plugin supports both **iOS** and **Android** platforms:\n- **iOS**: Utilizes Apple's Vision framework for text recognition\n- **Android**: Utilizes Google ML Kit Text Recognition v2 for text recognition\n\nBoth implementations provide on-device processing with no internet connection required.\n\n## Privacy\n\nThis plugin processes images locally on the device:\n- **iOS**: Uses Apple's Vision framework (on-device processing)\n- **Android**: Uses Google ML Kit (on-device processing)\n\nNo data is sent to external servers on either platform.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for a list of changes.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshrawank039%2Fflutter_native_ocr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshrawank039%2Fflutter_native_ocr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshrawank039%2Fflutter_native_ocr/lists"}