保存后图像复制裁剪错误 - Flutter

问题描述

我正在使用 firebase_ml_vision 来识别面孔。我需要从图像中提取人脸。边界条件给出了firebase人脸检测方法

我使用了 https://pub.dev 中的 copyCrop 方法 Image 插件提取人脸。我能够保存结果。但是当我尝试打开图像时,出现这些错误。我尝试以 PNGJPEG 两种格式保存。

JPEG Format

PNG Format

这是我写的函数


import 'package:image/image.dart' as editimage;

_editimage() async {
    final Face face = await _scanResults[0];
    final left = face.boundingBox.left.truncate();
    final right = face.boundingBox.right.truncate();
    final top = face.boundingBox.top.truncate();
    final bottom = face.boundingBox.bottom.truncate();

    print("Boundings" + face.boundingBox.toString());

    Directory d = await getExternalStorageDirectory();
    DateTime date = DateTime.Now();

    File img = File(_path);
    editimage.Image originalImage =
        editimage.decodeImage(img.readAsBytesSync());
    editimage.Image faceCrop =
        editimage.copyCrop(originalImage,left,top,right,bottom);
    final encodedImg = editimage.encodeJpg(faceCrop);

    final decodedImg = await decodeImageFromList(encodedImg);
    final result = await decodedImg.toByteData();

    final finalPath = "${d.path}/Face_Image_${date.toIso8601String()}.png";
    final finalImage = await new File(finalPath).create();
    final finalResult =
        result.buffer.asUint8List(result.offsetInBytes,result.lengthInBytes);
    finalImage.writeAsBytesSync(finalResult);
    print("Face crop finished");

  }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)