C# 为什么图片框中的图像没有拉伸?

C# 为什么图片框中的图像没有拉伸?,c#,image,C#,Image,我对C#中的图像处理比较陌生。我试图在图片框中缩放这个动态构建的BMP,但根本没有调整图像的大小。我希望BMP填充整个图片框。图片框是555x555。它只是以原始大小(100 x 100)显示BMP。有什么想法吗 private void Form1_Load(object sender, EventArgs e) { pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; } private void pictureBox1_P

我对C#中的图像处理比较陌生。我试图在图片框中缩放这个动态构建的BMP,但根本没有调整图像的大小。我希望BMP填充整个图片框。图片框是555x555。它只是以原始大小(100 x 100)显示BMP。有什么想法吗

private void Form1_Load(object sender, EventArgs e)
{
    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    Graphics gPB = e.Graphics;

    Bitmap bmp = new Bitmap(100, 100);
    Graphics gBmp = Graphics.FromImage(bmp);


    Brush whiteBrush = new SolidBrush(Color.White);
    gBmp.FillRectangle(whiteBrush, 0, 0, bmp.Width, bmp.Height);

    Brush redBrush = new SolidBrush(Color.IndianRed);
    gBmp.FillRectangle(redBrush, 0, 0, 20f, 20f);

    Brush greenBrush = new SolidBrush(Color.MediumSeaGreen);
    gBmp.FillRectangle(greenBrush, 20, 0, 20f, 20f);

    Brush blueBrush = new SolidBrush(Color.MediumSlateBlue);
    gBmp.FillRectangle(blueBrush, 0, 20, 20f, 20f);

    Brush yellowBrush = new SolidBrush(Color.LightYellow);
    gBmp.FillRectangle(yellowBrush, 20, 20, 20f, 20f);

    gPB.DrawImage(bmp, 0, 0, bmp.Width, bmp.Height);

    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}

我也尝试过Zoom SizeMode。这没有任何区别。

您可以点击.NET的
插值属性。请看这里:


有趣。我从未想过在绘制图像时使用pictureBox的宽度和高度。插值模式有助于调整大小后的分辨率。那正是我想要的!
gPB.InterpolationMode = InterpolationMode.NearestNeighbor;
gPB.DrawImage(bmp, 0, 0, 555, 555);