我想在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字符串的最大长度?
发布于 2018-11-14 23:34:19
使用"tesseract.js": "1.0.10"
通过将字符串作为参数传递给recognize,Tesseract试图打开一个名为data:image/png;base64,{bytes...}的文件,这会抛出您看到的错误,即ENAMETOOLONG,文件名太长。
要对base64字符串执行recognize操作,请将其转换为内容经过base64解码的Buffer:
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'));https://stackoverflow.com/questions/50739922
复制相似问题