在c#中调整图像大小并保存此图像

本文关键字:图像 保存 调整 | 更新日期: 2023-09-27 18:27:29

我有一些任务-如果高度或宽度>500px,则调整图像大小。我尝试这个代码。

但当我选择图像时,我会出现类似的错误

NewImage.Save(路径);

ВGDI+一般形式的错误。

private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog fdlg = new OpenFileDialog();
            fdlg.Multiselect = true;
            if (fdlg.ShowDialog() == DialogResult.OK)
            {
                for (int i = 0; i < fdlg.FileNames.Length; i++)
                {
                    string file = fdlg.FileNames[i];
                    string path = System.IO.Path.GetFullPath(file);
                    System.Drawing.Image img = System.Drawing.Image.FromFile(path);
                    if (img.Width > 500 || img.Height > 500)
                    {
                        int currW = img.Width;
                        int currH = img.Height;
                        int realWPer = 500 * 100 / currW;
                        int realHPer = 500 * 100 / currH;
                        int realW = currW / 100 * realWPer; // new width
                        int realH = currH / 100 * realHPer; // new height
                        Image NewImage = resizeImage(img, new Size(realW, realH));
                        NewImage.Save(path);
                    }
                }
            }
        }
public static Image resizeImage(Image imgToResize, Size size)
{
   return (Image)(new Bitmap(imgToResize, size));
}

在c#中调整图像大小并保存此图像

您还没有发布错误消息,所以只能猜测可能出了什么问题,我猜您在试图访问锁定的文件时出错了。

您正试图将新图像保存在打开的旧图像上。您永远不会关闭/处置img,因此当您尝试使用与旧相同的路径保存新图像时,它仍然打开