sizeFromAspect function
Calculates the size based on the aspect ratio and optional width and height.
If both width and height are provided, it returns a Size object with the specified width and height.
If only width is provided, it calculates the height based on the aspect ratio and returns a Size object with the specified width and calculated height.
If only height is provided, it calculates the width based on the aspect ratio and returns a Size object with the calculated width and specified height.
If neither width nor height is provided, it returns a Size object based on the aspect ratio.
Throws an ArgumentError if the aspect ratio format is invalid.
aspectRatio: The aspect ratio in string format.width: The optional width.height: The optional height.
Returns a Size object representing the calculated size.
Implementation
Size sizeFromAspect({required String aspectRatio, double? width, double? height}) {
if (width != null && height != null) {
return Size(width, height);
}
Size size = aspectRatio.toSize;
if (size.width <= 0 && size.height <= 0) {
throw ArgumentError('Invalid aspect ratio format.');
}
if (width != null) {
return Size(width, width / max(size.width, size.height) * min(size.width, size.height));
} else if (height != null) {
return Size(height / min(size.width, size.height) * max(size.width, size.height), height);
} else {
return size;
}
}