37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import { RequestClientType } from "../common/index.dto.js";
|
|
import { Controller } from "../common/index.js";
|
|
import { PostMessageble } from "../hook/adapter.js";
|
|
import { diskStorage } from "../hook/db.js";
|
|
import { createOcrWorker, saveBase64ImageData } from "./ocr.service.js";
|
|
|
|
export class OcrController {
|
|
@Controller('ocr/get-ocr-image')
|
|
async getOcrImage(data: any, webview: PostMessageble) {
|
|
const { filename } = data;
|
|
const buffer = diskStorage.getSync(filename);
|
|
const base64String = buffer ? buffer.toString('base64'): undefined;
|
|
return {
|
|
code: 200,
|
|
msg: {
|
|
base64String
|
|
}
|
|
}
|
|
}
|
|
|
|
@Controller('ocr/start-ocr')
|
|
async startOcr(data: any, webview: PostMessageble) {
|
|
const { base64String, mimeType } = data;
|
|
|
|
const filename = saveBase64ImageData(base64String, mimeType);
|
|
const worker = createOcrWorker(filename, webview);
|
|
|
|
return {
|
|
code: 200,
|
|
msg: {
|
|
filename,
|
|
workerId: worker.id
|
|
}
|
|
}
|
|
}
|
|
|
|
} |