在flutter插件image_picker示例中从图库中选择图像时内存增加

Jer*_*hou 6 plugins flutter imagepicker

我运行 flutter 的插件image_picker示例。

当我从图库中一张一张地挑选图像时,内存不断增加。理想情况下,memory should jump back因为它at most select one image在这个示例应用程序中。

在此处输入图片说明

class _MyHomePageState extends State<MyHomePage> {
  File _imageFile;              <-- this one keep the file of selected image.
  dynamic _pickImageError;
  bool isVideo = false;
  VideoPlayerController _controller;
  String _retrieveDataError;

  void _onImageButtonPressed(ImageSource source) async {
    ...
    try {
      _imageFile = await ImagePicker.pickImage(source: source);  <--- how to set value
      setState(() {});
    } catch (e) {
      _pickImageError = e;
    }
    ...
  }

  @override
  Widget build(BuildContext context) {
    ...
    Image.file(_imageFile);   <-- how to use it to display UI.
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何dispose the resource使用File

Gee*_*ngh 0

您可以使用maxHeightmaxWidth参数ImagePicker来加载调整大小的图像。

例如

var image = await ImagePicker.pickImage(source: ImageSource.gallery, maxWidth: 600);
Run Code Online (Sandbox Code Playgroud)

此外,如果您希望显示它或保存到文件系统,您可以使用FlutterNativeImage插件(内部使用 ImagePicker 插件),该插件采用图像路径和压缩值来压缩图像。

例如

var compressedImage = await FlutterNativeImage.compressImage(image.path, quality: 50);
Run Code Online (Sandbox Code Playgroud)

参考: https: //github.com/btastic/flutter_native_image