在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));
}
您还没有发布错误消息,所以只能猜测可能出了什么问题,我猜您在试图访问锁定的文件时出错了。
您正试图将新图像保存在仍打开的旧图像上。您永远不会关闭/处置img
,因此当您尝试使用与旧相同的路径保存新图像时,它仍然打开