flutter - 从 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()
但我真的不希望这样做。
解决方案
推荐阅读
- numpy - 如何在不循环的情况下使用 NumPy 在 Python 中逐行应用均方误差
- sql - 检查数组元素是否多次出现
- c++ - 我不能让我的函数计算已经过去了多少时间并相应地打印东西
- csv - 如何从csv文件计算列平均值并使用python将平均行写入新文件
- .net - 发布带有可执行文件的 nuget 包,nuget.org
- javascript - 为什么 Heroku 没有显示我的页面之一?(如果我在本地主机上加载该页面,则该页面有效)
- node.js - 如何处理多个 0Auth 访问令牌
- python - pandas 从多列中找到最近的变量索引
- haskell - 使用 Hakyll 按字母顺序排列列表
- javascript - datetimepicker 无法更改为 DD/MM/YY - ADMIN LTE