我正在使用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
小部件。