【问题标题】:How to load image from decodeImage(File('assets/logo.png').readAsBytesSync()); in flutter如何从 decodeImage(File('assets/logo.png').readAsBytesSync()) 加载图像;飘飘然
【发布时间】:2019-11-28 22:31:29
【问题描述】:

我正在使用“pdf”包创建一个带有颤振的 pdf。所以我想在pdf中插入一张图片。问题是我不知道如何从推荐在“pdf”包中使用的“Image”包中的资产加载图像。 参考:https://pub.dev/packages/pdf:pdf包参考和 https://pub.dev/packages/image: 镜像包引用

我尝试了一些代码,但没有任何工作 pdf.dart

import 'package:image/image.dart' as imgs;
final img1 = imgs.decodeImage(File('assets/logo.png').readAsBytesSync());
Image(PdfImage(
                      pdf.document,
                      height: 20,
                      width: 20,
                      image: img1.data.buffer.asUint8List(),
                    ))

我在项目的assets文件夹中有图像,我也有它在pubspec.yaml文件中

我希望使用“图像”包从资产文件夹中加载图像。 或者是否有另一种方法可以在“pdf”包中加载图像。

我使用上述代码时的一些错误:

E/PDFView (13223): load pdf error
E/PDFView (13223): java.io.FileNotFoundException: No such file or directory

【问题讨论】:

    标签: android flutter dart


    【解决方案1】:

    请参阅this answer,了解如何从资产包加载图像。 File('assets/logo.png') 将尝试在手机的文件系统上查找该文件,该文件不在您的资产包所在的位置。


    或者,如果您还安装了 printing 软件包:

    import 'package:printing/printing.dart';
    import 'package:flutter/material.dart' show AssetImage;
    
    final pdf = Document(deflate: zlib.encode);
    
    PdfImage logoImage = await pdfImageFromImageProvider(
      pdf: pdf.document,
      image: AssetImage('assets/logo.png'),
    );
    

    使用来自package:pdf/widgets.dartImage 小部件将其包装起来,然后将其添加到您的文档中:

    pdf.addPage(
      MultiPage(
        header: Image(logoImage),
        build: Container(),
        footer: Container(),
      ),
    );
    

    【讨论】:

    • 我正在使用package:pdf/pdf.dart 它是否也有 pdfImageFromImageProvider()。我应该在 pdf/pdf.dart 包中使用什么
    • 请参阅this answer,了解如何从资产包加载图像。 File('assets/logo.png') 将尝试在手机的文件系统上查找该文件,该文件不在您的资产包所在的位置
    • 当我添加“打印”包并运行应用程序时,它显示错误:[ERROR:flutter/lib/ui/painting/codec.cc(207)] Failed decoding image. Data is either invalid, or it is encoded using an unsupported format.
    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 2020-12-09
    • 2019-07-14
    • 2020-11-29
    • 1970-01-01
    • 2019-08-28
    • 2021-01-20
    • 2019-07-09
    相关资源
    最近更新 更多