首頁 > 後端開發 > C++ > 更新 PictureBox 映像時如何避免檔案鎖定?

更新 PictureBox 映像時如何避免檔案鎖定?

Susan Sarandon
發布: 2025-01-13 22:40:46
原創
235 人瀏覽過

How to Avoid File Locking When Updating PictureBox Images?

解決更新 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板