Мне нужно создать API с предложением, чтобы получить значение из изображения, без необходимости сохранять изображение на сервере, только как буфер. но я пытаюсь и ничего
, когда я тестирую с URL 'https://tesseract.projectnaptha.com/img/eng_bw.png', работает нормально, но когда я пытаюсь использовать с буфером или локальным файлом, не работает
service:
import * as Tesseract from 'tesseract.js';
export const readImage = async (file: any): Promise<any> => {
return new Promise((resolve, reject) => {
console.log(file);
Tesseract.recognize(
file,
'eng',
{ logger: m => console.log(m) },
).then((text) => {
console.log(text);
resolve(null);
}).catch(err => reject(err));
});
};
контроллер:
import {Request, Response} from "express";
import * as OcrService from './Ocr.service';
export const readImage = async (req: Request, res: Response) => {
try {
const encoded = req.file.buffer;
const document = await OcrService.readImage(encoded);
return res.status(200).send(document);
} catch (e) {
return res.status(400).send(e);
}
};
config / multer:
import * as multer from 'multer';
import * as path from 'path';
const storage = multer.memoryStorage();
export const upload = multer({
storage: storage,
fileFilter: function(req, file, callback) {
var ext = path.extname(file.originalname);
if (ext !== '.png' && ext !== '.jpg' && ext !== '.gif' && ext !== '.jpeg')
{
return callback(new Error('Only images are allowed'));
}
callback(null, true);
},
limits: {
fileSize: 1024 * 1024,
},
});
null POST / 200 1469,552 мс - 0
"мой текстовый пример"POST / 200 1469,552 мс - 0