繁体   English   中英

C#:调整图片框大小以适合图像

[英]C#: Resize picturebox to fit image

在我的应用程序(winforms)中,我想加载不同的图像。 这些图像具有不同的大小和不同的宽高比(假设我有一个400x400和1920x1200。)现在,我有一个图片框可放入这些图像,并且图片框的SizeMode属性设置为Zoom

现在,我在一个图片盒中有一个图像,该图像的大小已调整到适合Picuterbox的边界。 但是,如果图片框的长宽比与图片不同,则我将剩下一些不需要的空白空间。 不能将SizeMode设置为拉伸。

?:所以我想知道,是否有办法获得自动调整大小的图像的大小,所以我可以相应地更改图片框的大小。

Image myImg = new Image.FromFile(..//landscape.jpg)
int getWidth = myImg.Width;
int getHeight = myImg.Height;
// This does not work, as it gets the original size of the image (eg: in case of a 1920x1200, it gets 1920 and 1200 respectively)

这就是现在发生的情况:

比率错误比率错误

这就是我想要的:

所需比例 由于该应用程序应该能够处理任何图像,因此我需要动态设置这些值,因此无法预设任何值。

让我们说盒子是400x400。 当图片进入盒子时,将调整其大小以适合盒子的边界,但保持其长宽比。 因此,我们需要做的是计算框内图像的新大小,然后调整框的大小以使其匹配。

Image myImg = new Image.FromFile(..//landscape.jpg)
int getWidth = myImg.Width;
int getHeight = myImg.Height;
double ratio = 0;
if(getWidth>getHeight)
{
    ratio = getWidth/400;
    getWidth=400;
    getHeight=(int)(getHeight/ratio);
}
else
{
    ratio = getHeight/400;
    getHeight=400;
    getWidth=(int)(getWidth/ratio);
}
pictureBox.Width=getWidth;
pictureBox.Height=getHeight;

(不知道确切的类,因此可能会抛出一个或两个错误,但概念尚可)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM