我的目标是通过缩小图片来提高网站的性能。
当我展示NetworkImages时,它们总是以完整的源图像分辨率呈现(例如7000x4667像素)。该小部件本身通常具有较小的大小(例如200x200像素)。我有图像URL并想在将其加载到NetworkImage小部件之前将7000x4667像素的图像缩小为200x200。
我已经尝试了这个问题的答案:
Flutter - Resize network image这在Flutter移动端可以工作,但在Flutter Web中不行,因为ByteData originalByteData = await originalUiImage.toByteData();
这一行返回null
。
非常感谢你的帮助。
image
包,它的decodeImage
方法是瓶颈。因此,在将图像字节解码为其Image
对象时,它会冻结Flutter应用程序(加载Flutter应用程序的选项卡)一段时间。这取决于图像的大小,大图像需要更长的时间。调整大小过程完成后,它会减小图像大小,性能恢复正常。对于您的用例,我认为这不是一个解决方案,因为调整图像大小本身就是一个重量级操作。因此,也许在上传图像时,您可以上传两个版本,一个是完整尺寸,另一个是缩小版。 - sh_ark