getImageWHE static method
get image width height, load error throw exception.(unit px) 获取图片宽高,加载错误会抛出异常.(单位 px) image url network local url (full path/全路径,example:"assets/images/ali_connors.png",""assets/images/3.0x/ali_connors.png"" ); package
Implementation
static Future<Rect> getImageWHE(
{Image? image,
required String url,
required String localUrl,
required String package}) {
if (ObjectUtils.isEmpty(image) &&
ObjectUtils.isEmpty(url) &&
ObjectUtils.isEmpty(localUrl)) {
return Future.error("image is null.");
}
Completer<Rect> completer = Completer<Rect>();
Image img = image != null
? image
: ((url != null && url.isNotEmpty)
? Image.network(url)
: Image.asset(localUrl, package: package));
img.image
.resolve(const ImageConfiguration())
.addListener(ImageStreamListener(
(ImageInfo info, bool _) {
completer.complete(Rect.fromLTWH(0, 0, info.image.width.toDouble(),
info.image.height.toDouble()));
},
onError: (Object exception, StackTrace? stackTrace) {
completer.completeError(exception, stackTrace);
},
));
return completer.future;
}