我必须加载一个图像然后用另一个计时器删除它,但除非我发布图像资源,否则它是不可能的,代码是:
pic=Image.FromFile(Directory.GetCurrentDirectory+ "s.png")
此图片将被其他计时器代码替换,但无法替换,因为我目前正在显示此图片s.png
。如何在显示s.png
时再写它然后重新加载它?告诉我一些方法,我可以通过它释放资源s.png
,以便其他程序可以修改它。
答案 0 :(得分:2)
尝试将图像数据读入内存并从中创建Image
:
Dim stream = New MemoryStream(File.ReadAllBytes(Directory.GetCurrentDirectory() & "s.png"))
Dim pic = Image.FromStream(stream)
Image
的生命周期为need to keep the stream open,因此当替换图像文件并重新阅读时,请在Dispose
和stream
上调用pic
{{1}}在重新创建它们之前。