Копирование изображения Ошибка кадрирования после сохранения - Flutter

я использую firebase_ml_visionдля идентификации лиц. Мне нужно выделить лицо из изображения. Ограничивающие условия дают метод обнаружения лиц firebase.

я использовал copyCrop метод Imageплагин из https://pub.dev для извлечения лица. Я могу сохранить результат. Но когда я пытаюсь открыть изображение, я получаю эти ошибки. Я пробовал сохранять в обоих форматах PNG а также JPEG.

Вот функция, которую я написал.

      
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");

  }

0 ответов

Другие вопросы по тегам