web-dev-qa-db-ja.com

Flutter Image_Pickerプラグインから取得した画像サイズが大きすぎる

Image_pickerプラグインで利用可能なカメラでオートフォーカスを使用したいのですが。しかし、私が電話すると:

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

私が得た:5121126

aPIサーバーに送信するためにjsonにエンコードする場合、少なくとも10秒かかります。

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

対照的に、カメラプラグインを使用すると、バイトアレイは420685になり、10倍小さくなりますが、オートフォーカス機能がありません。

Image_pickerからバイト配列のサイズを削減する方法についてアドバイスをもらえますか?ありがとうございました。

10
Dai Dao

cameraプラグインには3つのデフォルト解像度があり、おそらくハードウェアのフル解像度よりも低い解像度を選択またはデフォルト設定しています。

image_pickerプラグインにはこれらのプリセットはありませんが、pickImageメソッド(maxWidthおよびmaxHeight)にいくつかのオプションの引数があります。これらのいずれかまたは両方をVGAタイプの解像度(640、480、さらには800、600)に設定して、キャプチャした画像のサイズが減少するかどうかを試してみてください。

画像を後処理できるimageというパッケージもあります。メインページのサンプルは、アスペクト比を維持しながらサイズ変更を行います。

11
Richard Heap

maxHeightプラグインのmaxWidthおよびImagePickerパラメータに小さい値を追加すると、サイズが圧縮されます。次に例を示します。

var fileFromCamera = await ImagePicker.pickImage(source: ImageSource.camera, maxHeight: 480, maxWidth: 640);

7
Idee