編集: 私はついにエラーを見つけました。ビットマップ、ストリーム、または静的とはまったく関係ありません。同僚の 1 人がメール送信後にメールの添付ファイルを削除するのを忘れていたようで、メール添付サービスが開いたままになっています。メール送信処理全体に using ステートメントを使用しましたが、解決しました。みんな、ありがとう。
同じタイトルのスレッドが何十億もあり、これは重複していると言うかもしれませんが、そうではないと信じています. 私は7時間ほど解決策を探していましたが、これまでのところ何も役に立ちませんでした.
問題は次のとおりです。これは、WebcamSource を Web カメラとして使用する写真キャプチャ アプリケーションです。最初の写真が撮影され、ユーザーに電子メールで送信されると、アプリケーションは正常に動作します。ただし、ユーザーがプロセスに最初から戻ると (最初の実行前にプロセスが開始された場所)、アプリケーションはそのようなエラーを返します。間違ったコードは以下です。
public static void SaveImageCapture(BitmapSource bitmap)
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
// bitmap = BitmapFrame.Create(BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
encoder.Frames.Add(BitmapFrame.Create(bitmap));
encoder.QualityLevel = 100;
encoder.Rotation = Rotation.Rotate270;
try
{
using (FileStream fstream = new FileStream("Photos\\" + fileName + ".jpg", FileMode.Create))
{
encoder.Save(fstream);
fstream.Close();
}
}
catch (Exception e) {
System.Windows.Forms.MessageBox.Show(e.ToString());
}
}
コードがクラッシュしFileStream fstream = new FileStream("Photos\\" + fileName + ".jpg", FileMode.Create)
、エラーが発生します
別のプロセスで使用されているため、プロセスはファイル「C:\Users[ユーザー名]\Dropbox[プロジェクト名][プロジェクト名]\bin\Debug\Photos」にアクセスできません。
BitmapCreateOptions.None
ウェブカメラ ストリームを閉じ、コードを try/catch で囲み、それを using ステートメントに入れ、FileAccess フィールドと FileShare フィールドを追加し、andを追加しようとしましBitmapCacheOption.OnLoad
た (許可されませんでした)、同じ画像を上書きするのではなく、別の名前で新しい画像を作成しました、メールを送信した後に画像を削除する(同じエラーが発生しました)、およびファイルアクセスの問題を引き起こす可能性のあるいくつかの小さな手配。