如何解决“无法将参数类型'ImageProvider<Object>'分配给参数类型'ImageProvider'?”飘飘然

我正在使用flutter打印库将选定的图像制作为 pdf。我有一个列表,在该列表中有所选图像的路径。这是代码:

final doc = pw.Document();

    for(var i=0;i>selected.length;i++){
      Image img=Image.file(File(selected[i]));
      ImageProvider image=img.image;

      doc.addPage(pw.Page(
          build: (pw.Context context) {
            return pw.Center(
              child: pw.Image(image),
            ); // Center
          })); // Page

    }

pw.Image 仅接受 ImageProvider 但我收到此错误:

The argument type 'ImageProvider<Object>' can't be assigned to the parameter type 'ImageProvider'.

我怎么解决这个问题?

stack overflow How to solve "The argument type 'ImageProvider<Object>' can't be assigned to the parameter type 'ImageProvider'?" in flutter
原文答案

接受的答案

像这样从“ PW”拨打ImageProvider ...

doc.addPage(pw.Page(
          pageFormat: PdfPageFormat.a4,
          build: (pw.Context context) {
            return pw.Center(
              child: pw.Image(pw.MemoryImage(imageBytes)),
            ); // Center
          })); // Page

答案:

作者头像

它目前是flutter的问题。要绕过它,您可以将对象转换为 Image Provider

child: pw.Image(image) as ImageProvider

这也被讨论过 **here**