簡體   English   中英

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

[英]tesseract.js returns too long string with base64

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

使用"tesseract.js": "1.0.10"

通過輸入一個字符串作為要recognize的參數, Tesseract試圖打開一個名為data:image/png;base64,{bytes...} ,這ENAMETOOLONG了您看到的錯誤,即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'));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM