【发布时间】:2014-10-15 08:01:58
【问题描述】:
在我的应用程序(winforms)中,我想加载不同的图像。这些图像有不同的尺寸和不同的纵横比(假设我有一个 400x400 和一个 1920x1200。)现在我有一个图片框来放置这些图片,并且图片框的 SizeMode 属性设置为缩放 .
现在我在图片框中有一张图片,它的大小已调整为适合图片框的边界。但是,如果图片框的纵横比与图像不同,我将留下一些不需要的空白空间。 将 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)
这就是现在发生的事情:
这是我想要的:
因为应用程序应该可以处理任何图像,所以我需要动态设置这些值,所以不能预设任何值。
【问题讨论】:
-
你不能把 sizemode 设置为 auto 吗?
-
如果我将其设置为自动,则显示其原始尺寸,这在大分辨率图像的情况下意味着您可以获得非常大的图像显示。关于stretchimage:我告诉过你这不是一个选项,因为我需要保持纵横比。
-
看看this问题
-
我不想调整我的图片大小。那是一个不同的问题。我想保持图像的原始分辨率,但将其显示得更小。这是必不可少的,因为我有缩放功能,如果我调整图像大小,放大会产生像素化和模糊的结果。