calculateImageSize function

Size calculateImageSize(
  1. Image image,
  2. Size contentSize
)

Implementation

Size calculateImageSize(ui.Image image, Size contentSize)  {

  // 获取图片的原始宽高
  final originalWidth = image.width.toDouble();
  final originalHeight = image.height.toDouble();

  // 计算最大可用高度和宽度
  final maxHeight = contentSize.height - 100;
  final maxWidth = contentSize.width;

  // 计算图片在容器中全部展示出来时的宽高值
  double displayWidth = maxWidth;
  double displayHeight = maxHeight;

  if (originalWidth / originalHeight > maxWidth / maxHeight) {
    // 图片宽高比大于容器宽高比,按宽度缩放
    displayHeight = (originalHeight / originalWidth) * maxWidth;
  } else {
    // 图片宽高比小于或等于容器宽高比,按高度缩放
    displayWidth = (originalWidth / originalHeight) * maxHeight;
  }

  return Size(displayWidth, displayHeight);
}