Flutter获取网络图片的宽高

发布时间:2024年01月09日

根据图片的URL获取相应图片的宽高,记录一下:

  Future<Size> getImageDimensions(String imageUrl) async {
    // 创建一个ImageProvider
    final ImageProvider provider = NetworkImage(imageUrl);

    // 完成图片加载的Completer
    final Completer<Size> completer = Completer<Size>();

    // 定义图片加载监听器
    final ImageStreamListener listener = ImageStreamListener(
          (ImageInfo info, bool synchronousCall) {
        // 图片加载完成,获取图片的宽度和高度
        final ImageSize = Size(
          info.image.width.toDouble(),
          info.image.height.toDouble(),
        );
        // 完成completer
        completer.complete(ImageSize);
      },
      onError: (exception, stackTrace) {
        // 图片加载失败,完成completer并传递异常
        completer.completeError(exception, stackTrace);
      },
    );

    // 获取图片的ImageStream
    final ImageStream stream = provider.resolve(const ImageConfiguration());

    // 为ImageStream添加监听器
    stream.addListener(listener);

    // 返回Future,将在图片加载完成或发生错误时完成
    return completer.future;
  }
文章来源:https://blog.csdn.net/WriteBug001/article/details/135485312
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。