You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tesseract.js处理本地文件报错,URL模式正常,求解决方案

Tesseract.js v2.1.0处理本地图片报错的解决办法

问题描述

使用Tesseract.js处理网络URL图片正常,但处理本地文件时报错,使用版本为v2.1.0,代码如下:

const { createWorker } = require('tesseract.js');

const worker = createWorker({
  logger: m => console.log(m), // Add logger here
});

(async () => {
  await worker.load();
  await worker.loadLanguage('eng');
  await worker.initialize('eng');
  const { data: { text } } = await worker.recognize('download.png');
  console.log(text);
  await worker.terminate();
})();

报错截图:
错误截图

解决办法

  • 修正文件路径
    相对路径download.png是相对于Node.js命令的执行目录,而非脚本所在目录。可以用Node.js的path模块生成绝对路径:

    const path = require('path');
    const imgPath = path.join(__dirname, 'download.png'); // 获取脚本所在目录下的图片路径
    const { data: { text } } = await worker.recognize(imgPath);
    
  • 检查文件权限
    确保Node.js进程拥有该图片文件的读取权限。Linux/macOS下可执行chmod +r download.png赋予读取权限;Windows下检查文件是否被锁定或调整权限设置。

  • 验证文件有效性
    确认download.png是完整有效的PNG文件,可尝试用图片查看器打开,或更换其他格式图片(如JPG)测试识别功能是否正常。

  • 转为Buffer传入
    Tesseract.js v2部分环境下对本地文件路径支持有限,可将文件转为Buffer后传入recognize:

    const fs = require('fs');
    const imgBuffer = fs.readFileSync('download.png');
    const { data: { text } } = await worker.recognize(imgBuffer);
    

内容的提问来源于stack exchange,提问作者ba_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:15:36