0

Я работаю над приложением Android OCR для Android, используя React-native в библиотеке, использующей response-native-tesseract-ocr, код для index.android. JS являетсяresponse-native tesseract-ocr [Ошибка: не удалось прочитать растровое изображение]

class ai extends Component{ 
    render(){ 
    return(
     <View style={styles.container}> 
     <Camera 
     ref = {(cam)=>{ 
      this.camera = cam 
     }} 
     style={styles.camera}> 
     <Text style={styles.button} onPress={this.capture.bind(this)}>Read</Text> 
     </Camera> 
     </View> 
    ); 
    } 
    capture() 
    { 
    var path = ""; 
    this.camera.capture().done(function(data){ 
     path = data.path; 
     console.log(data.path); 
    }); 
    RNTesseractOcr.startOcr(path, "LANG_ENGLISH") 
     .then((result) => { 
     this.setState({ ocrResult: result }); 
     console.log("OCR Result: ", result); 
     }) 
     .catch((err) => { 
     console.log("OCR Error: ", err); 
     }) 
     .done((data)=>{ 
     console.log(data); 
     }); 
    } 
} 

и данные журнала

12-28 18:14:18.187 25118 25152 I ReactNativeJS: file:///storage/emulated/0/DCIM/IMG_20161228_181418.jpg 
12-28 18:14:28.159 25118 25152 I ReactNativeJS: 'OCR Error: ', { [Error: Failed to read bitmap] framesToPop: 1, code: 'An error occurred' } 
12-28 18:14:28.404 25118 25152 I ReactNativeJS: file:///storage/emulated/0/DCIM/IMG_20161228_181428.jpg 
12-28 18:15:04.940 25118 25152 I ReactNativeJS: Running application "ai" with appParams: {"initialProps":{},"rootTag":11}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF 

используемого разрешения является

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

ответ

0

Для будущих посетителей:

Эта проблема Не удалось прочитать растровое изображение связано с траекторией изображения, полученной с камеры. Просто заменяет file:/// на /.

До: file:///storage/emulated/0/DCIM/IMG_20161228_181418.jpg

После: /storage/emulated/0/DCIM/IMG_20161228_181418.jpg

Ссылка: https://github.com/jonathanpalma/react-native-tesseract-ocr/issues/10

0

Ниже кода показано, как заменить файл: // с пути

this.camera.capture().done(function(data){ 
    path = data.path.replace('file://', ''); 
    console.log('data path', path); 
});