计算缩放级别以将图像放入面板

本文关键字:图像 缩放 计算 | 更新日期: 2023-09-27 18:25:16

如何计算缩放级别(图形比例)以将任何图像适合任何面板?

图像大小和图片大小可以是任何大小。

我需要的方法签名如下:

  public float CalculateZoomToFit(Image image, Panel targetPanel)
  {
     // I need to calculate the zoom level to make the picture fit into the panel
     return ???
  }

计算缩放级别以将图像放入面板

面板和图像的宽度与高度之比是答案的关键。

var panel_ratio = targetPanel.Width / targetPanel.Height;
var image_ratio = image.Width / image.Height;
return panel_ratio > image_ratio
     ? targetPanel.Height / image.Height
     : targetPanel.Width / image.Width
     ;

如果需要,添加对被零除错误的检查。

通常,它将是容器的宽度或高度(取决于您想要容纳的内容)除以放入其中的对象的宽度或高。这将为您提供所需的图像调整,使其适合。