파일에서 비트 맵을로드하고 일부 작업을 수행 한 다음 동일한 파일 이름으로 다시 저장하려고합니다. 패턴은 다음과 같습니다.C++. 비트 맵을 처리하는 방법?
Bitmap in = gcnew Bitmap(fileName);
Bitmap out = gcnew Bitmap(in.Width, in.Height, in.PixelFormat);
fill [out] with data from [in]
out.Save(fileName);
그러나 이것은 작동하지 않습니다. 그건 분명하다. 아직 열어 둔 파일에 저장할 수 없습니다 (비트 맵 때문에). 질문은 : 도대체 어떻게 비트 맵을 닫을까요?! 나는 여러 가지 방법을 시도했지만 아무런 효과가 없습니다. C#에서는 Dispose를 호출했지만 C++에서는이 메서드가 보호됩니다. 전화 걸기도 작동하지 않습니다. 해결책은 무엇입니까?
편집 : 하나의 비트 맵에서 작동해도 작동하지 않습니다. 그러나 나는 문제를 발견했다. 전화 걸기가 작동했습니다. 비트 맵을 포인터로 선언하는 걸 잊었습니다.
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);
아직 http://msdn.microsoft.com/en-us/library/ms177197.aspx를 보셨습니까? – user287107