如何在Flutter中获取图片提供器的高度和宽度?

3
在Flutter中,如何获取图像提供者的宽度和高度?
在下面的示例中,我需要获取图像提供者的宽度。这样我就能够计算photo_view包中PhotoView小部件的minScale。
import 'package:flutter/material.dart';
import 'package:photo_view/photo_view.dart';

class ImageViewerScreen extends StatelessWidget {

  final ImageProvider imageProvider;

  ImageViewerScreen({@required this.imageProvider});

  @override
  Widget build(BuildContext context) {
    final double _screenWidth = MediaQuery.of(context).size.width;
    final double _imageWidth =
        imageProvider.width; //Here is the question: how to get the width of this imageProvider?
    final double _minScale = _screenWidth / _imageWidth;

    return Scaffold(
      appBar: AppBar(),
      body: Container(
          child: PhotoView(
        imageProvider: imageProvider,
        minScale: _minScale,
      )),
    );
  }
}

这个能帮到你吗?链接 - tomerpacific
1
非常感谢大家!在提问之前,我也阅读了那篇帖子,但发现解决方案可能过于复杂和昂贵(涉及到Future、listener、FutureBuilder等),只是为了获取图像的宽度。我想知道是否有更简单的方法来做到这一点。似乎目前还没有这样的简单方法。希望Flutter团队能尽快提供。再次感谢您的建议。 - dreamkast
1个回答

0

目前,有一个现有的Flutter插件可供使用。这在您发布问题时不可用。我建议检查image_size_getter,它现在在pub.dev上可用。概述而言,此软件包有助于读取元数据以获取宽度和高度,但不完全解码图像文件本身。

支持的格式包括:

  • jpeg
  • gif
  • png
  • webp
  • bmp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接