gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 20:46:52 25 4
gpt4 key购买 nike

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

现在我在图片框中有一张图像,它已调整大小以适合图片框的边界。但是如果图片框的纵横比与图像的纵横比不同,我就会留下一些不需要的空白空间。将 SizeMode 设置为拉伸(stretch)不是一个选项。

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

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)

这是现在发生的事情:

Wrong ratio Wrong ratio

这是我想要的:

Required ratio因为应用程序应该能够处理任何图像,所以我需要动态设置这些值,所以不能预设任何值。

最佳答案

假设盒子是 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;

(不知道确切的类,所以可能会抛出一两个错误,不过概念很合理)

关于C#:调整图片框大小以适合图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26377433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com