Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android react native tesseract ocr[错误:读取位图失败]_Android_Reactjs_React Native_Tesseract_React Native Android - Fatal编程技术网

Android react native tesseract ocr[错误:读取位图失败]

Android react native tesseract ocr[错误:读取位图失败],android,reactjs,react-native,tesseract,react-native-android,Android,Reactjs,React Native,Tesseract,React Native Android,我正在使用React-native为android开发android OCR应用程序React-native tesseract OCR库, index.android.js的代码是 class ai extends Component{ render(){ return( <View style={styles.container}> <Camera ref = {(cam)=>{ this

我正在使用React-native为android开发android OCR应用程序React-native tesseract OCR库, index.android.js的代码是

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);
      });
  }
}
使用的权限是

<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" />

对于未来的访客:

此问题读取位图失败是由于从相机获取的图像路径造成的。简单地用
/
替换
文件://
即可解决此问题

之前:
file:///storage/emulated/0/DCIM/IMG_20161228_181418.jpg

之后:
/storage/emulated/0/DCIM/IMG_20161228_181418.jpg


参考:

下面的代码显示了如何从路径替换文件:/

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