rn-ocr-lib
v0.2.4
Published
React native library to perform OCR on images
Downloads
66
Maintainers
Readme
rn-ocr-lib
React native library to perform OCR on images. This library uses Tesseract library for image processing in android and vision library for iOS.
Showcase
Installation
npm install rn-ocr-lib
# or
yarn add rn-ocr-lib
Setup
Android
Create folder app/src/main/assets/tessdata
. Inside tessdata
place ${lang}.traineddata
. You can get the train data files from here.
iOS
Vision library is present in iOS from version 13 or above. So update ios/Podfile
.
platform :ios, '13.0'
Usage
Kindly refer the example project for usage for Android and iOS.
API Reference
Methods
import { getText, useOCREventListener } from 'rn-ocr-lib';
getText
Call this method to initiate image processing
getText(data: string, dataInputType: DataInputType, options?: Partial<OCROptions>): void;
useOCREventListener
Call this hook to setup listener to listen to progress, result and error.
useOCREventListener(
(event: OCREventType, ocrEventResponse: OCREventResponse) => {
switch (event) {
case OCREvent.FINISHED:
return;
case OCREvent.PROGRESS:
return;
case OCREvent.ERROR:
return;
default:
return;
}
}
);
Parameters
dataInputType
| Input type | Value | Description | | ---------- | ------ | ------------------ | | file | FILE | Path to image file | | base64 | BASE64 | Base64 string |
options
| Option | Type | iOS | Android | Default | Description | | ------------- | ------------- | --- | ------- | ------------ | --------------------------------------------------- | | ocrEngineMode | OCREngineMode | Yes | Yes | FAST | Type of mode between fast or accurate recognization | | pageSegMode | PageSegMode | No | Yes | PSM_OSD_ONLY | Page seg mode of tesseract | | lang | string[] | Yes | Yes | ["eng"] | Languages for which recognization is needed |
ocrEngineMode
| Engine Mode | Value | Description | | ------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | FAST | 0 | Fast mode where recognization will be faster but mismatch of words is possible | | ACCURATE | 1 | Accurate mode where time to process is more but more accurate text will be obtained | | FAST_ACCURATE | 2 | Relavant for android tesseract where train data is provided for accurate and fast results but traindata file may be bigger compared to previous modes |
pageSegMode (Android)
By default Tesseract expects a page of text when it segments an image. If you’re just seeking to OCR a small region, try a different segmentation mode.
| Segmentation Mode | Value | Description | | -------------------------- | ----- | --------------------------------------------------------------------------------------------- | | PSM_OSD_ONLY | 0 | Orientation and script detection (OSD) only. | | PSM_AUTO_OSD | 1 | Automatic page segmentation with OSD. | | PSM_AUTO_ONLY | 2 | Automatic page segmentation, but no OSD, or OCR. | | PSM_AUTO | 3 | Fully automatic page segmentation, but no OSD. (Default) | | PSM_SINGLE_COLUMN | 4 | Assume a single column of text of variable sizes. | | PSM_SINGLE_BLOCK_VERT_TEXT | 5 | Assume a single uniform block of vertically aligned text. | | PSM_SINGLE_BLOCK | 6 | Assume a single uniform block of text. | | PSM_SINGLE_LINE | 7 | Treat the image as a single text line. | | PSM_SINGLE_WORD | 8 | Treat the image as a single word. | | PSM_CIRCLE_WORD | 9 | Treat the image as a single word in a circle. | | PSM_SINGLE_CHAR | 10 | Treat the image as a single character. | | PSM_SPARSE_TEXT | 11 | Sparse text. Find as much text as possible in no particular order. | | PSM_SPARSE_TEXT_OSD | 12 | Sparse text with OSD. | | PSM_RAW_LINE | 13 | Raw line. Treat the image as a single text line, bypassing hacks that are Tesseract-specific. |
event
| Event type | Value | Description | | ---------- | -------- | ---------------------------------------------------- | | FINISHED | finished | Event when OCR completes | | PROGRESS | progress | Progress event when OCR is processing | | ERROR | error | Error event OCR fails and some error is being thrown |
ocrEventResponse
| Key | Type | Description | | -------- | ------ | ---------------- | | text | string | Result text | | progress | number | Progress percent | | error | string | Error message |
Language Support
Android
Here is the list of supported languages for android.
iOS
Vision library currently has limited language support. It supports the following languages.
| Language | Code | | ------------------- | ------- | | English | eng | | France | fra | | Italian | ita | | German | deu | | Spanish | spa | | Portuguese | por | | Chinese Simplified | chi_sim | | Chinese Traditional | chi_tra |
Contributing
See the contributing guide to learn how to contribute to the repository and the development workflow.
License
MIT
Made with create-react-native-library