打开并保存问题

时间:2013-01-22 14:11:57

标签: vb.net winforms bitmap gdi+

我的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

1 个答案:

答案 0 :(得分:1)

使用其他文件名保存,然后根据需要删除旧文件并重命名新文件以匹配旧文件,事先Disposed Image

来自Image.FromFile

  

文件保持锁定状态,直到Image被处理。

如果相同的Image实例试图Save回到文件中,那么其他任何地方都没有说明这种方式可以解决。