getImages method
- required DateTime endTimestamp,
- required Format format,
- required ImageSelectorType imageSelectorType,
- required DateTime startTimestamp,
- Map<
FormatConfigKey, String> ? formatConfig, - int? heightPixels,
- int? maxResults,
- String? nextToken,
- int? samplingInterval,
- String? streamARN,
- String? streamName,
- int? widthPixels,
Retrieves a list of images corresponding to each timestamp for a given time range, sampling interval, and image format configuration.
May throw ClientLimitExceededException.
May throw InvalidArgumentException.
May throw NoDataRetentionException.
May throw NotAuthorizedException.
May throw ResourceNotFoundException.
Parameter endTimestamp :
The end timestamp for the range of images to be generated. If the time
range between StartTimestamp and EndTimestamp is
more than 300 seconds above StartTimestamp, you will receive
an IllegalArgumentException.
Parameter format :
The format that will be used to encode the image.
Parameter imageSelectorType :
The origin of the Server or Producer timestamps to use to generate the
images.
Parameter startTimestamp :
The starting point from which the images should be generated. This
StartTimestamp must be within an inclusive range of
timestamps for an image to be returned.
Parameter formatConfig :
The list of a key-value pair structure that contains extra parameters that
can be applied when the image is generated. The FormatConfig
key is the JPEGQuality, which indicates the JPEG quality key
to be used to generate the image. The FormatConfig value
accepts ints from 1 to 100. If the value is 1, the image will be generated
with less quality and the best compression. If the value is 100, the image
will be generated with the best quality and less compression. If no value
is provided, the default value of the JPEGQuality key will be
set to 80.
Parameter heightPixels :
The height of the output image that is used in conjunction with the
WidthPixels parameter. When both HeightPixels
and WidthPixels parameters are provided, the image will be
stretched to fit the specified aspect ratio. If only the
HeightPixels parameter is provided, its original aspect ratio
will be used to calculate the WidthPixels ratio. If neither
parameter is provided, the original image size will be returned.
Parameter maxResults :
The maximum number of images to be returned by the API.
Parameter nextToken :
A token that specifies where to start paginating the next set of Images.
This is the GetImages:NextToken from a previously truncated
response.
Parameter samplingInterval :
The time interval in milliseconds (ms) at which the images need to be
generated from the stream. The minimum value that can be provided is 200
ms (5 images per second). If the timestamp range is less than the sampling
interval, the image from the startTimestamp will be returned
if available.
Parameter streamARN :
The Amazon Resource Name (ARN) of the stream from which to retrieve the
images. You must specify either the StreamName or the
StreamARN.
Parameter streamName :
The name of the stream from which to retrieve the images. You must specify
either the StreamName or the StreamARN.
Parameter widthPixels :
The width of the output image that is used in conjunction with the
HeightPixels parameter. When both WidthPixels
and HeightPixels parameters are provided, the image will be
stretched to fit the specified aspect ratio. If only the
WidthPixels parameter is provided or if only the
HeightPixels is provided, a ValidationException
will be thrown. If neither parameter is provided, the original image size
from the stream will be returned.
Implementation
Future<GetImagesOutput> getImages({
required DateTime endTimestamp,
required Format format,
required ImageSelectorType imageSelectorType,
required DateTime startTimestamp,
Map<FormatConfigKey, String>? formatConfig,
int? heightPixels,
int? maxResults,
String? nextToken,
int? samplingInterval,
String? streamARN,
String? streamName,
int? widthPixels,
}) async {
_s.validateNumRange(
'heightPixels',
heightPixels,
1,
2160,
);
_s.validateNumRange(
'maxResults',
maxResults,
1,
100,
);
_s.validateNumRange(
'widthPixels',
widthPixels,
1,
3840,
);
final $payload = <String, dynamic>{
'EndTimestamp': unixTimestampToJson(endTimestamp),
'Format': format.value,
'ImageSelectorType': imageSelectorType.value,
'StartTimestamp': unixTimestampToJson(startTimestamp),
if (formatConfig != null)
'FormatConfig': formatConfig.map((k, e) => MapEntry(k.value, e)),
if (heightPixels != null) 'HeightPixels': heightPixels,
if (maxResults != null) 'MaxResults': maxResults,
if (nextToken != null) 'NextToken': nextToken,
if (samplingInterval != null) 'SamplingInterval': samplingInterval,
if (streamARN != null) 'StreamARN': streamARN,
if (streamName != null) 'StreamName': streamName,
if (widthPixels != null) 'WidthPixels': widthPixels,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/getImages',
exceptionFnMap: _exceptionFns,
);
return GetImagesOutput.fromJson(response);
}