tesseract.js使用base64返回太长的字符串

时间:2018-06-07 11:20:42

标签: 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 show_progress(p) {
    console.log(p);
}

它收到以下形式的错误:

Error: ENAMETOOLONG: name too long, open 'data:image/png;base64,iVBORw0KGgoAAAA ...

是否可以以某种方式设置(放大)base64字符串的最大长度?

1 个答案:

答案 0 :(得分:0)

使用"tesseract.js": "1.0.10"

通过将字符串作为参数传递给recognizeTesseract试图打开一个名为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));