Javascript tesseract.js返回的base64字符串太长
我想在node.js服务器上测试tesseract.js库,但在运行以下代码时:Javascript tesseract.js返回的base64字符串太长,javascript,tesseract,tesseract.js,Javascript,Tesseract,Tesseract.js,我想在node.js服务器上测试tesseract.js库,但在运行以下代码时: var TESSERACT = require('tesseract.js'); var base64String = 'data:image/png;base64,' + pngInBase64; var job1 = TESSERACT.recognize(base64String, { progress: show_progress, lang: 'ang' }); function sho
var TESSERACT = require('tesseract.js');
var base64String = 'data:image/png;base64,' + pngInBase64;
var job1 = TESSERACT.recognize(base64String, {
progress: show_progress,
lang: 'ang'
});
function show_progress(p) {
console.log(p);
}
它收到以下格式的错误:
Error: ENAMETOOLONG: name too long, open 'data:image/png;base64,iVBORw0KGgoAAAA ...
是否可以以某种方式设置(放大)base64字符串的最大长度?使用“tesseract.js”:“1.0.10”
:
通过将字符串作为参数传递给recognize
,Tesseract
尝试打开名为data:image/png的文件;base64,{bytes…}
这会抛出您看到的错误,即ENAMETOOLONG
,文件名太长
若要识别
base64字符串,请将其转换为内容为base64解码的缓冲区
:
Tesseract.recognize(Buffer.from(base64String, 'base64'));
// have a cup of tea
注意:Tesseract.recognize
在base64缓冲区上不起作用,您还需要删除元数据:data:image/png;base64
所以这是行不通的:
Tesseract.recognize(Buffer.from(base64string));
这也行不通:
const base64string = 'data:image/png;base64,{bytes...}'
Tesseract.recognize(Buffer.from(base64string));
您需要获取以下字节:
const base64string = 'data:image/png;base64,{bytes...}'.split(',')[1];
Tesseract.recognize(Buffer.from(base64string, 'base64'));