Android react native tesseract ocr[错误:读取位图失败]
我正在使用React-native为android开发android OCR应用程序React-native tesseract OCR库, index.android.js的代码是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
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);
});