1

我的 VB 项目中有一个功能,我可以在其中扫描图像,然后可以更改对比度。我扫描它并保存它C:\temp\my_img.tif

winform图像中显示为PictureBox.

如果我在对比函数集中img.Save("C:\temp\my_img.tif", ImageFormat.Tiff)得到“GDI+ 中发生一般错误”。. 但是,如果我将其设置filename为其他内容,它就可以正常工作。

那么,如何在保存之前释放使用过的图像呢?

整个功能,简而言之:

Sub setContrast(ByVal C As Single)
    'filename(1) ia a "global" variable that stores the used file path, in this case "C:\temp\my_img.tif"

    Dim img As Image = Image.FromFile(filename(1)) '<--- I get the image

    'A bunch of contrast stuff in some rows.....

    'Here, i should release the image...

    img.Save(filename(1), ImageFormat.Tiff) '<---Tries to save

    PictureBox1.Refresh()
End Sub
4

1 回答 1

1

使用不同的文件名保存它,然后,如有必要,删除旧文件并重命名新文件以匹配旧文件,Disposed预先Image拥有。

来自Image.FromFile

该文件保持锁定状态,直到Image被释放。

Image如果同一个实例试图Save返回文件,则其他任何地方都没有任何措辞可以解决此问题。

于 2013-01-22T14:54:29.423 回答