解決更新 PictureBox 映像時的檔案鎖定問題
使用新的點陣圖更新 PictureBox 的 Image 屬性有時會觸發異常,使影像檔案處於鎖定狀態。這是因為點陣圖保留了對原始檔的引用。
解決方案:無檔案鎖定高效圖片載入
解決方案涉及載入映像而不建立檔案鎖定。 這個方法效率很高:
<code class="language-csharp">public static Image FromFile(string path) { byte[] bytes = File.ReadAllBytes(path); using (MemoryStream ms = new MemoryStream(bytes)) { return Image.FromStream(ms); } }</code>
此程式碼將圖像讀取到位元組數組中,然後將其串流傳輸到 Image 物件中,從而避免了檔案鎖定。 然後可以將映像安全地分配給 PictureBox。
效能基準
與點陣圖複製方法的效能比較表明,這種位元組數組方法要快得多(每個圖像大約 0.26 毫秒,而複製方法為 0.50 毫秒)。
擷取位圖物件
如果您特別需要 Bitmap 對象,只需稍加修改即可:
<code class="language-csharp">return (Bitmap)Image.FromStream(ms);</code>
這確保傳回的物件是 Bitmap 類型。
這些方法為更新 PictureBox 映像、防止檔案鎖定並提高應用程式效率提供了可靠且高效能的解決方案。
以上是更新 PictureBox 映像時如何避免檔案鎖定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!