为什么Flutter(飞镖)处理图像的速度太慢?

问题描述 投票:1回答:1

我有这种方法,将用户手机中的照片加载到内存中,调整大小并将其编码为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

我究竟做错了什么?如何改善?

PS。:我做了一些更多的调试,并意识到需要更长时间处理的生产线是一个解决方案:

var jpg = Image.decodeJpg(rawPhoto);
dart flutter
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.