0

私はアンドロイドのためにアンドロイドのOCRアプリケーションを使用していますReact-nativeライブラリはreact-native-tesseract-ocr、 index.androidのコードを使用しています。使用許可のであるjsが反応 - ネイティブ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); 
}); 
関連する問題