captureFrameAsPng static method

Future<Uint8List?> captureFrameAsPng({
  1. required CameraImage cameraImage,
  2. int rotation = 0,
  3. bool flipHorizontal = false,
})

Implementation

static Future<Uint8List?> captureFrameAsPng({
  required CameraImage cameraImage,
  int rotation = 0,
  bool flipHorizontal = false,
}) async {
  try {

    img.Image image;

    if (cameraImage.format.group == ImageFormatGroup.yuv420) {
      image = _convertYUV420ToImage(cameraImage);
    } else if (cameraImage.format.group == ImageFormatGroup.bgra8888) {
      image = _convertBGRA8888ToImage(cameraImage);
    } else {
      log('Unsupported image format: ${cameraImage.format.group}');
      return null;
    }

    if (rotation != 0 && Platform.isAndroid) {
      image = img.copyRotate(image, angle: rotation);
    }

    if (flipHorizontal) {
      image = img.flipHorizontal(image);
    }
    return Uint8List.fromList(img.encodePng(image));
  } catch (e) {
    log('Error converting camera image to PNG: $e');
    return null;
  }
}