计算缩放级别以使图像适合面板

时间:2012-02-20 18:36:50

标签: c# .net 2d system.drawing

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

图像尺寸和图片尺寸可以是任意尺寸。

我需要的方法签名如下:

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

提前致谢。

2 个答案:

答案 0 :(得分:4)

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

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
     ;

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

答案 1 :(得分:0)

一般来说,容器的宽度或高度(取决于你想要容纳的东西)除以你放入的物体的宽度或高度。这将为您提供对图像进行调整以使其适合的调整。