我想测试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 show_progress(p) {
console.log(p);
}
它收到以下形式的错误:
Error: ENAMETOOLONG: name too long, open 'data:image/png;base64,iVBORw0KGgoAAAA ...
是否可以以某种方式设置(放大)base64字符串的最大长度?
答案 0 :(得分:0)
使用"tesseract.js": "1.0.10"
:
通过将字符串作为参数传递给recognize
,Tesseract
试图打开一个名为data:image/png;base64,{bytes...}
的文件,这引发了您看到的错误,即{{1} },文件名太长。
要将ENAMETOOLONG
的base64字符串转换为recognize
,其内容被base64解码:
Buffer
注意:Tesseract.recognize(Buffer.from(base64String, 'base64'));
// have a cup of tea
在base64 Tesseract.recognize
上不起作用,您还需要摆脱元数据Buffer
。
所以这行不通:
data:image/png;base64
这也不起作用:
Tesseract.recognize(Buffer.from(base64string));
您需要获取字节:
const base64string = 'data:image/png;base64,{bytes...}'
Tesseract.recognize(Buffer.from(base64string));