为什么Flutter(Dart)处理图像速度如此缓慢?

7
我有这个方法,可以从用户的手机加载照片到内存中,调整大小并将其编码为JPEG:
List<int> processPersonProfilePhoto(File file) {
  var rawPhoto = file.readAsBytesSync();
  var jpg = Image.decodeJpg(rawPhoto);
  jpg = Image.copyResize(jpg, 512);
  return Image.encodeJpg(jpg, quality: 70);
}

我正在通过独立隔离区运行上述方法,方法如下:

var jpgByteArray = await compute(processPersonProfilePhoto, file);

整个过程有时需要20-30秒(发布模式甚至比调试模式更糟),我正在中高端设备上运行。

这是我正在使用的软件包:

image: ^2.0.7

我做错了什么?如何改进?
附言:我进行了更多的调试并意识到需要更长时间处理的是解码行。
var jpg = Image.decodeJpg(rawPhoto);

你使用的是哪款手机型号? - Dylan
2
调试模式很慢,请尝试使用发布版本。 - Doc
@Dylan 我正在测试中高端设备。从调试模式到发布模式,处理时间并没有太大的区别。 - Daniel Oliveira
我正在使用相同的软件包,我的原始图像大约为800KB,调整大小后的图像大约为100KB,并且处理需要大约3秒钟。你的原始图像和调整大小后的图像有多大? - Kenneth Li
我正在使用低端真实的安卓设备。 - Kenneth Li
显示剩余2条评论
1个回答

6

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