【问题标题】:tesseract.js returns too long string with base64tesseract.js 使用 base64 返回太长的字符串
【发布时间】:2018-06-07 11:20:41
【问题描述】:

我想在 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字符串的最大长度?

【问题讨论】:

    标签: javascript tesseract tesseract.js


    【解决方案1】:

    使用"tesseract.js": "1.0.10"

    通过将字符串作为参数传递给recognizeTesseract 正在尝试打开一个名为data:image/png;base64,{bytes...} 的文件,这会引发您看到的错误,即ENAMETOOLONG,文件名太长。

    recognize一个base64字符串,把它变成一个Buffer,其内容是base64解码的:

    Tesseract.recognize(Buffer.from(base64String, 'base64'));
    // have a cup of tea
    

    注意:Tesseract.recognize 不适用于 base64 Buffer,您还需要删除元数据: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'));
    

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2019-04-11
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      相关资源
      最近更新 更多