2009-12-23 3 views
0

런타임시 메모리의 상당 부분을 차지하는 비트 맵 객체가 있습니다. 나중에 메모리에서 압축 (JPEG 형식)하고 나중에 사용하려고합니다. 나는 압축이 사용하고 있습니다 :이미지에서 바이트 배열을 가져올 때 메모리 압축 예외가 발생했습니다.

MemoryStream ms = new MemoryStream(); 
oBmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 
oBmp.Dispose(); 
oBmp = null; 
Image ResultImg = Image.FromStream(ms); 
ms.Dispose(); 
ms = null; 

나는 이것이 정말 일부 메모리를 저장하면 잘 모릅니다 또는 I 스트림에서 이미지를 다시로드 할 때 모든 것이 다시 정상 메모리 소비하는 것입니다.

어쨌든 나중에이 이미지에서 바이트 배열을 얻으려고 노력에, 내가 사용하고 오전 : ImageIn 이전 코드에서 저장 한 이미지입니다

MemoryStream ms = new MemoryStream(); 
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); 
return ms.ToArray(); 

. GDI + 예외가 나타납니다. [일반 오류가 GDI +에서 발생했습니다.]

"메모리 압축에서"이 작업을 수행하지 않으면 동일한 코드가 제대로 작동하지만 실제로 메모리를 절약해야합니다. 나는이 호출되지 말았어야

감사

답변

0

내 실수를 :

ms.Dispose(); 
관련 문제