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

如何在Flutter中识别图片内文本并转换为字符串?

在Flutter中识别图片文本并转成字符串

当然可以,在Flutter里实现图片文本识别(也就是OCR),常用的有两个方案,操作起来都不复杂:

方案一:用谷歌官方的google_ml_kit包

这个包集成简单,支持多语言识别,适合快速开发。

步骤:

  1. 先在pubspec.yaml里加依赖:
dependencies:
  google_ml_kit: ^0.13.0
  image_picker: ^1.0.4 # 要是你还没实现图片选择功能,就加这个
  1. 写识别逻辑代码:
import 'package:google_ml_kit/google_ml_kit.dart';
import 'package:image_picker/image_picker.dart';

Future<String?> getTextFromImage() async {
  // 从相册选图(如果你的图片已经有路径了,这步可以跳过,直接用你的路径)
  final pickedImage = await ImagePicker().pickImage(source: ImageSource.gallery);
  if (pickedImage == null) return null;

  // 把图片转成ML工具能处理的格式
  final inputImage = InputImage.fromFilePath(pickedImage.path);

  // 创建文本识别器
  final textRecognizer = GoogleMlKit.vision.textRecognizer();

  // 开始识别
  final recognizedText = await textRecognizer.processImage(inputImage);

  // 把识别出的文本拼接成字符串
  String textResult = '';
  for (var block in recognizedText.blocks) {
    for (var line in block.lines) {
      textResult += '${line.text}\n';
    }
  }

  // 用完记得释放资源
  await textRecognizer.close();

  return textResult;
}
  1. 配置权限:
  • 安卓:在AndroidManifest.xml里加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  • iOS:在Info.plist里加权限描述
<key>NSPhotoLibraryUsageDescription</key>
<string>需要访问相册选择图片进行文本识别</string>

方案二:用tesseract_ocr包

这个基于Tesseract引擎,适合需要自定义训练数据(比如识别特殊字体、生僻字)的场景,不过要额外下载语言训练包(比如中文的chi_sim.traineddata),放到assets目录里,再在pubspec.yaml里配置加载资源,之后调用识别方法就行,灵活性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:05:24