ファイルからビットマップをロードし、いくつかの操作を実行して、同じファイル名で保存したいと考えています。パターンは次のとおりです。
Bitmap in = gcnew Bitmap(fileName);
Bitmap out = gcnew Bitmap(in.Width, in.Height, in.PixelFormat);
fill [out] with data from [in]
out.Save(fileName);
しかし、これは機能しません。それは明らかです。まだ開いているファイルに保存できません (ビットマップが含まれているため)。問題は、どうやってビットマップを閉じるのですか?! 私は多くの方法を試しましたが、何もうまくいきません。Dispose の呼び出しは C# で機能しましたが、このメソッドは C++ で保護されています。delete の呼び出しも機能しません。解決策は何ですか?
編集: 1 つのビットマップでの操作も機能しません。しかし、問題が見つかりました。削除の呼び出しが機能しました。ビットマップをポインターとして宣言するのを忘れていました
Bitmap^ in = gcnew Bitmap(fileName);
Bitmap^ out = gcnew Bitmap(in.Width, in.Height, in.PixelFormat);
fill [out] with data from [in]
delete in;
out.Save(fileName);