ppu-paddle-ocr
Version:
Lightweight, probably the fastest PaddleOCR SDK in TypeScript. Runs anywhere JavaScript runs: Node.js, Bun, Deno, mobile react-native, web browsers, and browser extensions. Docker & CLI supported. The official SDK is browser-only. Accurate text detection
1 lines • 1.29 kB
JavaScript
export class NodePlatformProvider{pathSeparator=path.sep;ort=ort;createCanvas(width,height){return new Canvas(width,height)}isCanvas(image){return image instanceof Canvas}async loadResource(source,defaultUrl){if(source instanceof ArrayBuffer){return source}let sourceToLoad=typeof source==="string"?source:defaultUrl;if(sourceToLoad.startsWith("http")){let response=await fetch(sourceToLoad);if(!response.ok){throw new Error(`Failed to fetch resource from ${sourceToLoad}`)}return response.arrayBuffer()}let buffer=await fs.readFile(sourceToLoad);return buffer.buffer.slice(buffer.byteOffset,buffer.byteOffset+buffer.byteLength)}async saveDebugImage(canvas,filename,outputDir){await fs.mkdir(outputDir,{recursive:true});await CanvasToolkit.getInstance().saveImage({canvas,filename,path:outputDir})}canvas={prepareCanvas:(image)=>CanvasProcessor.prepareCanvas(image),createProcessor:(canvas)=>new CanvasProcessor(canvas),getToolkit:()=>CanvasToolkit.getInstance()};imageProcessor={prepareCanvas:async(image)=>{return CanvasProcessor.prepareCanvas(image)},ImageProcessor,Contours,cv}}import*as fs from"fs/promises";import*as ort from"onnxruntime-node";import*as path from"path";import{Canvas,Contours,ImageProcessor,cv}from"ppu-ocv";import{CanvasProcessor,CanvasToolkit}from"ppu-ocv/canvas";