VBnet 載入圖片後如何刪除圖片檔案
阿新 • • 發佈:2018-12-19
要載入圖片很容易,程式碼如下
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也可以正常打開了,還可以直接刪除原始檔了