如何从decodeImage(File('assets/logo.png').readAsBytesSync())加载图像;在颤动中



我正在使用"pdf"包创建一个带有颤振的pdf。所以我想在pdf中插入一个图像。问题是我不知道如何从建议在"pdf"包中使用的"图像"包中的资产加载图像。Refrence:https://pub.dev/packages/pdf :p df package reference andhttps://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(),
                    ))

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

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

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

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

有关如何从资源包加载图像,请参阅此答案。 File('assets/logo.png')将尝试在手机的文件系统上找到该文件,该文件不是您的资源包所在的地方。


或者,如果您还安装了打印包:

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.dart 中的 Image 小部件将其包装,然后将其添加到文档中:

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

最新更新