System.Drawing.Image.FromFile不会关闭文件流

时间:2010-09-27 07:22:14

标签: gdi+ system.drawing

如果我使用此方法创建图像,然后尝试删除/修改图像文件,则会出现错误,因为仍有一个流仍在使用该文件。

如何删除或处理此流,以便我可以处理该文件?

2 个答案:

答案 0 :(得分:2)

请勿使用此方法。请改用FromStream并执行此操作:

    Using FileStream = New IO.FileStream("D:\Test.jpg", IO.FileMode.Open)
        Dim x = System.Drawing.Image.FromStream(FileStream)

        'Do your image manipulation...'
    End Using

    IO.File.Delete("D:\Test.jpg")

答案 1 :(得分:2)

FromStream具有完全相同的问题 - 当Image对象存在时,流必须保持打开状态。您应该复制图像,然后处理副本。 http://support.microsoft.com/kb/814675