29

我在 C# 中遇到了图像缩放问题。

我有一个给定尺寸的图片框:例如宽度 = 800px 高度 = 600px

我正在将不同的图像加载到该图片框中,小的(400x400)和大的(800+ x 600+)

如果它们不适合盒子,我的图像会被调整大小。但它们总是被调整为 PictureBox 的最大宽度和高度。所以纵横比被破坏了

任何人都可以帮助识别/解决问题吗?

课程:

Form1.cs

ImageHandling.cs(注释掉)

ImageUtilities.cs

例子:

问题 1:我的版本
在此处输入图像描述

与原始来源在此处输入图像描述

问题 2:
我的版本
在此处输入图像描述

与原始来源
在此处输入图像描述

我想要它:

解决方案
在此处输入图像描述

4

2 回答 2

58
this.PictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

将该属性设置为您的 PictureBox 并且图像的大小将增加或减小以适合 PictureBox 保持大小比例。

欲了解更多信息:http: //msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.sizemode.aspx

于 2012-09-28T19:40:48.327 回答
0

我通过在 PictureBox 的 resize 方法上重置 SizeMode 来处理这个问题。

这基本上与上面的答案相同,但它的格式要好得多。

private void ScaleImage()
{
  if (pbInfo.Image == null)
    return;

  if (pbInfo.Image.Width > pbInfo.Width || pbInfo.Image.Height > pbInfo.Height)
    pbInfo.SizeMode = PictureBoxSizeMode.Zoom;
  else
    pbInfo.SizeMode = PictureBoxSizeMode.Normal;
}
于 2022-01-07T16:46:06.867 回答