buildInputImage method
InputImage
buildInputImage(
- CameraImage cameraImage,
- InputImageRotation rotation
Builds a platform-specific InputImage from a raw CameraImage.
For Android, the YUV420 format is converted to NV21 format. For iOS, the BGRA8888 format is used. This method constructs an InputImage to be processed by ML Kit.
Implementation
InputImage buildInputImage(
CameraImage cameraImage,
InputImageRotation rotation,
) {
try {
if (Platform.isAndroid) {
final nv21Bytes = _convertToNV21(cameraImage);
final metadata = InputImageMetadata(
size: Size(cameraImage.width.toDouble(), cameraImage.height.toDouble()),
rotation: rotation,
format: InputImageFormat.nv21,
bytesPerRow: cameraImage.width,
);
return InputImage.fromBytes(bytes: nv21Bytes, metadata: metadata);
}
final metadata = InputImageMetadata(
size: Size(cameraImage.width.toDouble(), cameraImage.height.toDouble()),
rotation: rotation,
format: InputImageFormat.bgra8888,
bytesPerRow: cameraImage.planes[0].bytesPerRow,
);
return InputImage.fromBytes(
bytes: cameraImage.planes[0].bytes,
metadata: metadata,
);
} catch (e) {
throw Exception('Failed to build InputImage: $e');
}
}