1

您好我正在尝试将位图图像保存在基本图像编辑器程序中。

这是代码:

         // then save it
        ImageBoxInApp.Image.Save(filename);

[编辑]我用这个打开图像

openFileDialog1.Title = "Select an Image";
        openFileDialog1.Filter = "All Files|*.*|Windows Bitmaps|*.bmp|JPEG Files|*.jpg";
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            filename = openFileDialog1.FileName;
            Image img = System.Drawing.Image.FromFile(filename);

所以当我尝试这个时,我会收到一个Generic GDI+ error. 所以我找到了一个解决方案,它看起来像这样:

        // Delete existing file first
        System.IO.File.Delete(filename);
        // then save it
        ImageBoxInApp.Image.Save(filename);

但是当我尝试这样做时,我收到另一个错误,说我正在删除的文件当前是打开的。这是因为这是我要编辑的文件。

如何在不实际关闭应用程序的情况下“关闭”文件?还是有替代解决方案?

谢谢!

4

1 回答 1

1

如果没有看到有关如何加载文件的一些上下文,很难说,但这里有一些建议:

  1. 保存前,将现有图像复制到新图像中,关闭原图,执行删除,然后保存副本。
  2. 将文件保存为随机文件名,删除原始文件,将随机命名的文件重命名为原始名称。
  3. 将文件加载到内存流中并使用内存中的副本来初始化图像。

在大多数情况下,我个人会选择选项#3。请务必在使用完图像后将其丢弃 - 最好将其包装在 using ( ) 块中。

于 2009-05-08T03:24:55.210 回答