从Flatter Image_Picker插件获取的图像大小太大了

从Flatter Image_Picker插件获取的图像大小太大了,image,plugins,camera,uiimagepickercontroller,flutter,Image,Plugins,Camera,Uiimagepickercontroller,Flutter,我想在相机上使用自动对焦,这可以在图像选择器插件上找到。然而,当我打电话时: var bytes = new File(imagePath); var enc = await bytes.readAsBytes(); print(enc.length); 我得到:5121126 当我想编码成json发送到API服务器时,至少需要10秒: var body = json.encode({ 'image' : enc }) 相比之下,使用摄像头插件,我的字节数组只有420685,比它

我想在相机上使用自动对焦,这可以在图像选择器插件上找到。然而,当我打电话时:

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获得一些关于如何减小字节数组大小的建议吗?谢谢。

相机的
插件有3个默认分辨率,您可能正在选择或默认为较低的分辨率(比硬件的完整分辨率)

image\u picker
插件没有这些预设,但是在
pickImage
方法上有一些可选参数(
maxWidth
maxHeight
)。实验将其中一个或两个设置为VGA类型的分辨率(640480,甚至800600),看看这是否会减小捕获图像的大小


还有一个名为
image
的包,它允许您对图像进行后期处理。主页上的示例会调整大小,以保持纵横比。

ImagePicker
插件中为
maxHeight
maxWidth
参数添加小值会压缩大小。以下是一个例子:

var fileFromCamera=wait ImagePicker.pickImage(来源:ImageSource.camera,最大高度:480,最大宽度:640);

现在在图像中\u picker v^0.6.7+4您还有参数“imageQuality”,在文档中可以看到。。
imageQuality
参数修改图像质量,范围为0-100,其中100是原始/最大质量

因此,最终的代码可能是:

ImagePicker().getImage(
      source:ImageSource.camera,
      maxHeight: 480,
      maxWidth: 640,
      imageQuality: 50
)

谢谢你的回答。我已经签出了
图像
包,解码图像字节和调整大小的速度也非常慢。pickimage可选参数——有助于降低分辨率。ImagePicker插件中的picsAdding
imageQuality
参数压缩大小。例如:File image=wait ImagePicker.pickImage(源:source,imageQuality:20);