首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用base64时,tesseract.js返回的字符串太长

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

Stack Overflow用户
提问于 2018-06-07 19:20:42
回答 1查看 1.7K关注 0票数 0

我想在node.js服务器上测试tesseract.js库,但在运行以下代码时:

代码语言:javascript
复制
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);
}

它在表单中收到一个错误:

代码语言:javascript
复制
Error: ENAMETOOLONG: name too long, open 'data:image/png;base64,iVBORw0KGgoAAAA ...

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

EN

回答 1

Stack Overflow用户

发布于 2018-11-14 23:34:19

使用"tesseract.js": "1.0.10"

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

要对base64字符串执行recognize操作,请将其转换为内容经过base64解码的Buffer

代码语言:javascript
复制
Tesseract.recognize(Buffer.from(base64String, 'base64'));
// have a cup of tea

注意:Tesseract.recognize不能在base64 Buffer上工作,您还需要去掉元数据:data:image/png;base64

所以这是行不通的:

代码语言:javascript
复制
Tesseract.recognize(Buffer.from(base64string));

这也是行不通的:

代码语言:javascript
复制
const base64string = 'data:image/png;base64,{bytes...}'
Tesseract.recognize(Buffer.from(base64string));

您需要获取字节数:

代码语言:javascript
复制
const base64string = 'data:image/png;base64,{bytes...}'.split(',')[1];
Tesseract.recognize(Buffer.from(base64string, 'base64'));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50739922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档