1. 程式人生 > >VBnet 載入圖片後如何刪除圖片檔案

VBnet 載入圖片後如何刪除圖片檔案

要載入圖片很容易,程式碼如下

Dim Img=Image.FromFile(FileName)

但是我們發現,這個圖片被載入到程式裡面後,檔案就被只讀打開了,想要刪除就不行了啊,聰明的小夥伴馬上想到,那簡單,複製一個副本,然後再釋放源影象就行了,如下:

            Using Img = Image.FromFile(FilePathName)
                Return Img.Clone
            End Using

正常情況下下,這種用法確實沒問題,一般的單幀影象肯定沒問題.但是遇到gif這種圖片就不行了,Image.Clone只能克隆第一張圖片,後面的圖片完全被拋棄了?於是我們查詢Image的載入圖片方式,發現有Image.FromStream,這個是個好東西,我們可以先將圖片檔案流複製到記憶體裡面,再從記憶體裡面載入圖片不就可以了嗎,馬上動手:

		    Dim memoryStream_start As New MemoryStream()
            Using Fs As New System.IO.FileStream(FilePathName, IO.FileMode.Open, IO.FileAccess.Read)
                Dim Buff(Fs.Length - 1) As Byte
                Fs.Read(Buff, 0, Fs.Length - 1)
                memoryStream_start.Write(Buff, 0, Buff.Length
- 1) Return Image.FromStream(memoryStream_start) End Using

果然成功了,GIF也可以正常打開了,還可以直接刪除原始檔了