首页 > 解决方案 > 从 Flutter Image_Picker 插件获取的图像尺寸太大

问题描述

我想在相机上使用自动对焦,这在 image_picker 插件上可用。但是,当我打电话时:

var bytes = new File(imagePath);
var enc = await bytes.readAsBytes();
print(enc.length);

我得到了:5121126

当我想编码成 json 发送到 API 服务器时,这至少需要 10 秒:

var body = json.encode({
      'image' : enc
})

相比之下,有了相机插件,我的字节数组只有420685,小了10倍,但是没有自动对焦功能。

我可以就如何从 image_picker 减小字节数组的大小获得一些建议吗?谢谢你。

标签: imagepluginscamerauiimagepickercontrollerflutter

解决方案


camera插件有 3 个默认分辨率,您可能选择或默认为较低的分辨率(低于硬件的全分辨率)。

image_picker插件没有这些预设,但在pickImage方法 (maxWidthmaxHeight) 上有一些可选参数。尝试将其中一项或两项设置为 VGA 类型的分辨率(640、480,甚至 800、600),看看这是否会减小捕获图像的大小。

还有一个名为的包image,可让您对图像进行后处理。主页上的示例进行了调整大小,保持纵横比。


推荐阅读