[英]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.