ホームページ > バックエンド開発 > C++ > 画像を PictureBox に割り当てるときに発生するファイル ロック例外を解決するにはどうすればよいですか?

画像を PictureBox に割り当てるときに発生するファイル ロック例外を解決するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-13 22:52:44
オリジナル
715 人が閲覧しました

How to Resolve File Lock Exceptions When Assigning Images to PictureBoxes?

PictureBox 画像割り当てのファイル ロック例外を解決します

実行時に画像を PictureBox に割り当てると、開発者はファイルが別のプロセスによってロックされていることを示すエラーが発生する場合があります。これは、ファイルが Image または Bitmap オブジェクトによってすでに使用されている場合に発生します。この問題を解決するには、ファイルのロックを解除する主な方法が 2 つあります。

メモリストリームを使用する

推奨されるアプローチは、画像データをメモリ ストリームにロードし、ストリームから Image オブジェクトを作成することです。このメソッドはファイルのロックを解除し、さらなる画像処理を可能にします:

<code class="language-c#">public static Image FromFile(string path)
{
    byte[] bytes = File.ReadAllBytes(path);
    using (MemoryStream ms = new MemoryStream(bytes))
    {
        return Image.FromStream(ms);
    }
}</code>
ログイン後にコピー

ビットマップからコピー

もう 1 つの方法は、画像を表す Bitmap オブジェクトのコピーを作成し、それを PictureBox に割り当てることです。この方法では追加のメモリ消費が発生しますが、元のファイル ロックは保持されます:

<code class="language-c#">Image imgCopy = new Bitmap(filePath);
pbAvatar.Image = imgCopy;</code>
ログイン後にコピー

パフォーマンス テストでは、Bytes から画像を読み込む方が、Bitmap からコピーするよりもはるかに高速であることが示されています。ただし、特に Bitmap オブジェクトが必要な場合は、copy メソッドを使用できます。

以上が画像を PictureBox に割り当てるときに発生するファイル ロック例外を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート