getImages method

  1. @override
Future<GetImagesResult> getImages({
  1. List<String>? filterSourceNames,
  2. Map<String, dynamic>? extra,
})
override

Return a list of named images from a camera and metadata about the response.

const camera = new VIAM.CameraClient(machine, 'my_camera');
const images = await camera.getImages();

@example

final images = await camera.getImages(
  filterSourceNames: ['color'],
  extra: {},
);

@param filterSourceNames - A list of source names to filter the images by. If empty or undefined, all images will be returned. @param extra - Extra parameters to pass to the camera.

Implementation

@override
Future<GetImagesResult> getImages({
  List<String>? filterSourceNames,
  Map<String, dynamic>? extra,
}) async {
  final request = GetImagesRequest()
    ..name = name
    ..extra = extra?.toStruct() ?? Struct();

  if (filterSourceNames != null && filterSourceNames.isNotEmpty) {
    request.filterSourceNames.addAll(filterSourceNames);
  }

  final response = await client.getImages(request, options: callOptions);

  final images = response.images.map((image) {
    final mimeType = MimeType.fromFormat(image.format);
    final viamImage = ViamImage(image.image, mimeType);
    return NamedImage(
      sourceName: image.sourceName,
      image: viamImage,
    );
  }).toList();

  ResponseMetadata? nativeMetadata;
  if (response.hasResponseMetadata()) {
    nativeMetadata = ResponseMetadata(
      capturedAt: response.responseMetadata.capturedAt.toDateTime(),
    );
  }

  return GetImagesResult(
    images: images,
    metadata: nativeMetadata,
  );
}