Flutter获取网络图片的宽高

根据图片的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;
  }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值