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