我的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
答案 0 :(得分:1)
使用其他文件名保存,然后根据需要删除旧文件并重命名新文件以匹配旧文件,事先Disposed
Image
。
文件保持锁定状态,直到
Image
被处理。
如果相同的Image
实例试图Save
回到文件中,那么其他任何地方都没有说明这种方式可以解决。