detectFaceInImageFile method

  1. @override
Future<Rect?> detectFaceInImageFile(
  1. String filePath
)
override

Implementation

@override
Future<Rect?> detectFaceInImageFile(String filePath) async {
  if (!isSupported) return null;

  try {
    final Object? result = await methodChannel.invokeMethod<Object?>(
      'analyzeImageFile',
      {'filePath': filePath},
    );
    if (result is Map) {
      final map = Map<String, dynamic>.from(result);
      final int faceCount = (map['faceCount'] as num?)?.toInt() ?? 0;
      if (faceCount <= 0) return null;

      if (map.containsKey('boundingBoxLeft')) {
        return Rect.fromLTRB(
          (map['boundingBoxLeft'] as num).toDouble(),
          (map['boundingBoxTop'] as num).toDouble(),
          (map['boundingBoxRight'] as num).toDouble(),
          (map['boundingBoxBottom'] as num).toDouble(),
        );
      }
    }
    return null;
  } on PlatformException {
    return null;
  }
}