如何计算缩放级别(图形比例)以使任何图像适合任何面板?
图像尺寸和图片尺寸可以是任意尺寸。
我需要的方法签名如下:
public float CalculateZoomToFit(Image image, Panel targetPanel)
{
// I need to calculate the zoom level to make the picture fit into the panel
return ???
}
提前致谢。
答案 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)
一般来说,容器的宽度或高度(取决于你想要容纳的东西)除以你放入的物体的宽度或高度。这将为您提供对图像进行调整以使其适合的调整。