首页 > 解决方案 > 从 Flutter 中的操纵图像获取 FirebaseVisionImage

问题描述

在使用 Firebase MLkit 之前,我正在尝试对我的图像进行一些预处理。以前,我只是简单地加载我的图像,然后像这样直接传递它。

File file = await FilePicker.getFile(type: FileType.IMAGE);
final FirebaseVisionImage visionImage = FirebaseVisionImage.fromFile(file);
VisionText visionText = await textRecognizer.processImage(visionImage);

但是现在,我想对图像进行一些处理。我使用 Flutter 的Image 包来做到这一点。

import 'package:image/image.dart' as Img;

File file = await FilePicker.getFile(type: FileType.IMAGE);
Img.Image image = Img.decodeImage(file.readAsBytesSync());
var img = Img.invert(image);

现在,我如何将这个新对象传递给 FirebaseVisionImage。我看到有这个功能:

FirebaseVisionImage.fromBytes(bytes, metadata)

我猜我可以使用从上面的图像对象中获取字节,img.getBytes()但我很困惑如何设置元数据。

编辑:我看到可以将图像写入临时文件

img.writeAsBytesSync(decoded.ToList());

然后再次使用该图像,FirebaseVisionImage.fromFile()但我真的不希望这样做。

标签: flutterfirebase-mlkit

解决方案


推荐阅读