微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决保存后图像复制裁剪错误 - 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 举报,一经查实,本站将立刻删除。