Flutter-相机拍摄的照片上的拉线



我正在使用https://github.com/brendan-duncan/image/wiki为了在我的图像上绘制文本,我的问题是,当我试图传递的图像是相机插件捕获的图像时,我如何获得image.drawString((中第一个参数所需的图像?

final path = join(
// Store the picture in the temp directory.
// Find the temp directory using the `path_provider` plugin.
(await getTemporaryDirectory()).path,
'${DateTime.now()}.png',
);
// Attempt to take a picture and log where it's been saved.
await _controller.takePicture(path);
//this doesnt work
img.Image image = Image.file(File(path)) 
img.drawString(image, img.arial_24, 50, 50, "Hello World");

我得到这个错误:

'图像(其中图像在myflutterpath/packages/flutter/lib/src/widgets/image.dart('不能是分配给类型为"Image"的变量(其中Image在/myflutterpath/flutter/.pub cache/hosts/pub.dartlang.org/image-2.1.4/lib/src/image.dartr('

您正在将Flutter的Image小部件分配给image包中的img.Image变量。这些是完全独立的数据类型。

要执行您想要的操作,您需要创建一个img.Image对象。由于图像源是PNG文件(根据文件扩展名进行猜测(,因此需要将其解码为原始像素数据。这可以使用已经包含在您现有的image包中的PngDecoder来完成。

img.Image image = img.PngDecoder().decodeImage(await File(path).readAsBytes());

这将从PNG文件创建img.Image,而不是Image小部件。

相关内容

  • 没有找到相关文章

最新更新